V S*_*S X 9 path node.js reactjs webpack
我正在浏览这个 webpack 教程:https ://youtu.be/TOb1c39m64A
__dirname在 1:30:00 左右,他讨论了in的用法path.resolve,但我不太明白使用和不使用它有什么区别。
这两个(path.resolve& __dirname)不是同一个意思吗?两者都给出了该文件运行的当前绝对目录。事实证明,当我删除它时__dirname,它仍然会build在同一根位置创建文件(即使webpack.config.js)文件不存在于根级别。即下面的代码产生相同的结果:
和__dirname
output: {
assetModuleFilename: "images/[hash][ext][query]",
path: path.resolve(__dirname, 'dist')
},
Run Code Online (Sandbox Code Playgroud)
没有__dirname:
output: {
assetModuleFilename: "images/[hash][ext][query]",
path: path.resolve('dist')
},
Run Code Online (Sandbox Code Playgroud)
__dirname那么这里需要用到什么呢??
Pre*_*vic 12
您有权在您的场景中它们将以相同的方式工作。
但这两者之间有一个微妙的区别,我将尽力解释它。
Node 脚本中的__dirname将为您提供当前 JS 文件所在位置的绝对路径。
另一方面,path.resolve为您提供绝对路径,如果不是从路径段构建,则默认为当前工作目录。(这是你的情况)。
where js file resides和的路径之间存在差异currently working directory。
你怎样才能找到这个差异呢?在您的应用程序中,您可以使用以下命令更改当前目录processs.chdir(./example):
现在,如果您检查您的地址,它们将不相同。path.resolve还将将此/example部分附加到您的路径中。__dirname仍将参考正确的路径。
不久之后,在您的情况下,它们的工作原理将完全相同,但是__dirname更强大的方法。
| 归档时间: |
|
| 查看次数: |
4244 次 |
| 最近记录: |