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.joinpath.resolve 是 NodeJS path 模块的方法,特别是 docs - 它们不是通用的 Javascript 方法