首页 > webpack问题,这个path.join干啥用的,直接写相对路径不行?

webpack问题,这个path.join干啥用的,直接写相对路径不行?

output: {
        path: path.join(__dirname, './dist'),
        filename: '[name].js',
        publicPath: '/dist/'
    },

写成./dist,为何这么写(下面是我的写法)

var path = require('path');
// 定义路径
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, 'app');
var BUILD_PATH = path.resolve(ROOT_PATH, 'build');

module.exports = {
    // 项目的文件夹
    entry: './src/app.js',
    // 输出的文件名 合并以后的js会命名为bundle.js
    module: {
        // 加载器
        loaders: [{
            test: /\.css$/,
            loader: 'style-loader!css-loader'
        }, {
            test: /\.(png|jpg|gif)$/,
            loader: 'url-loader?limit=8192'
        }, ]
    },
    output: {
        path: BUILD_PATH,
        filename: '[name].js'
    },
};

主要还是为了容错。

如果你只是单单写了

output: {
    path: './build',
    filename: '[name].js'
}

你觉得这个相对的./build指的是哪个目录?到底是相对“谁”啊?

其实相对的不是你期望的当前脚本所在目录,而是相对于你在哪个目录执行的webpack命令,就是cli里常说的current working directory。所以如果当你执行命令的目录和webpack.config.js在同一个目录时,没有任何问题。不过要是换个目录执行,你试试看嘛^^


Webpack 文档在此:http://webpack.github.io/docs...

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