Home  >  Q&A  >  body text

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

webpack官方的教程

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

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

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

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

求问这两者的区别?

天蓬老师天蓬老师2654 days ago360

reply all(2)I'll reply

  • 高洛峰

    高洛峰2017-04-10 18:08:12

    你自己输入一下就好了嘛

    新建a.js
    输入

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

    运行 node a.js

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

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 18:08:12

    在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

    reply
    0
  • Cancelreply