首页 > path.resolve(__dirname, 'src') 和 __dirname + 'src' 有什么区别?

path.resolve(__dirname, 'src') 和 __dirname + 'src' 有什么区别?

webpack官方的教程

上文提到在webpack中使用ES6需要加入babel这个加载器

但是在原文中loaders的代码中:

 loaders: [
     {
         test:   /\.js/,
         loader: 'babel',
         include: __dirname + '/src',
         // include: path.resolve(__dirname, '/src'),
     }
],

改成被注释的代码就能运行成功,
否则一直报错无法找到对应的加载器。

求问这两者的区别?


你自己输入一下就好了嘛

新建a.js
输入

var path = require('path');
console.log(__dirname + '/src');
console.log(path.resolve(__dirname, '/src'));

运行 node a.js

根据你是window,mac,linux会有不同


在Mac和Linux上下面这几种是等价的:

__dirname + '/src'
path.resolve(__dirname, 'src')
path.resolve(__dirname, './src')
path.join(__dirname, '/src')
path.join(__dirname, './src')
path.join(__dirname, 'src')

至于你写的path.resolve(__dirname, '/src')resolve错误的用法,如果是目录拼接建议用path.join,不建议用 +

详见官方文档:https://nodejs.org/api/path.html

【热门文章】
【热门文章】