node路径兼容性

27 阅读1分钟

配置文件一定不能手拼,一定要path.resolve 或者 path.join,要不拉去打靶。

const config = {
  entry: '../src' + '/index.js'
}

config.entry // '../src/index.js'

看到手拼,是绝对不行的。

因为要

1、保证兼容性

2、路径规范

3、目录遍历漏洞

4、绝对路径绝对正确,相对路径依赖执行位置

这样写, path.resolve()或者path.join()去替代 手写手拼路径


const path = require('path');

module.exports = {
  entry: path.resolve(__dirname, '..');
  
}

写到这里,说一下

path.resolve(__dirname, '..')

比如项目结构是这样:

config

  • webpack.config.js src
    dist

window上就相当:

在webpack.config.js中

__dirname // C:\\项目根目录\\config

path.resolve(__dirname, '..') // C:\\项目根目录

苹果上:

在webpack.config.js中

__dirname // /home/user/项目根目录/config

path.resolve(__dirname, '..') // /home/user/项目根目录