foo.join和foo.resolve之间的区别?在webpack中

Difference between foo.join and foo.resolve? In webpack

本文关键字:foo webpack 区别 join resolve 之间      更新时间:2023-09-26

我来自ruby on 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是否在目录中查找文件,如果它不存在,是否为我创建?有点像ruby 中的if defined

path.join基本上只是使用主机操作系统的正确目录分隔符(通常是/')进行字符串连接。path.resolve做同样的事情,但也计算出绝对路径,从系统的根目录开始。

在您的情况下,生成的路径将是相同的,因为__dirname已经是一个绝对路径,因此与path.join的简单级联会产生与path.resolve相同的结果,从而保证绝对路径。

这两种方法都不会创建不存在的目录或文件——它们会为您提供一个路径字符串,而不管是否可以在那里访问任何内容。

编辑:请注意,path.joinpath.resolve是NodeJS path模块的方法,特别是文档-它们不是通用的Javascript方法