foo.join 和 foo.resolve 的区别?在 webpack 中
Difference between foo.join and foo.resolve? In webpack
我来自 ruby rails 背景,我想知道我是否正确理解了以下代码...
目前我的 webpack.config.js
如下所示...
var path = require('path');
module.exports = {
context: path.join(__dirname, 'src'),
entry: [
'./app.js'
],
... etc
如果我这样做会有什么不同
... (omitted code)
context: path.resolve(__dirname, '../src'),
... etc
resolve
是否在目录中查找文件,如果不存在则为我创建?有点像 if defined
in ruby
path.join
基本上只是使用主机操作系统的正确目录分隔符(通常是 /
或 \
)的字符串连接。 path.resolve
做同样的事情 但还会计算出绝对路径 ,从系统的根目录开始。
在你的情况下,结果路径将是相同的,因为 __dirname
已经是一个绝对路径,所以与 path.join
的简单连接产生与 path.resolve
相同的结果,这保证了绝对路径。
这两种方法都不会创建不存在的目录或文件 - 它们都会为您提供路径字符串,而不管是否可以实际到达那里。
编辑:请注意 path.join
和 path.resolve
是 NodeJS path
模块的方法,特别是 docs - 它们不是通用的 Javascript 方法
我来自 ruby rails 背景,我想知道我是否正确理解了以下代码...
目前我的 webpack.config.js
如下所示...
var path = require('path');
module.exports = {
context: path.join(__dirname, 'src'),
entry: [
'./app.js'
],
... etc
如果我这样做会有什么不同
... (omitted code)
context: path.resolve(__dirname, '../src'),
... etc
resolve
是否在目录中查找文件,如果不存在则为我创建?有点像 if defined
in ruby
path.join
基本上只是使用主机操作系统的正确目录分隔符(通常是 /
或 \
)的字符串连接。 path.resolve
做同样的事情 但还会计算出绝对路径 ,从系统的根目录开始。
在你的情况下,结果路径将是相同的,因为 __dirname
已经是一个绝对路径,所以与 path.join
的简单连接产生与 path.resolve
相同的结果,这保证了绝对路径。
这两种方法都不会创建不存在的目录或文件 - 它们都会为您提供路径字符串,而不管是否可以实际到达那里。
编辑:请注意 path.join
和 path.resolve
是 NodeJS path
模块的方法,特别是 docs - 它们不是通用的 Javascript 方法