检测内部webpack文件中运行了哪个package.json脚本命令

时间:2019-04-03 08:17:17

标签: webpack package.json

在webpack.config.js文件中,当我在开发(http://localhost:3000)和生产(npm run dev)中使用publicPath时,我需要将其设为npm run build /dist

当前,当我要进行生产构建时,我总是手动将publicPath从http://localhost:3000更改为/dist。有没有一种方法可以根据正在运行的npm script命令自动执行此操作?它将在http://localhost:3000时自动使用npm run dev,在/dist时自动使用npm run build

package.json文件:

"scripts": {
    "build": "webpack --mode production",
    "dev": "webpack-dev-server --mode development",
},

webpack文件:

output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    // publicPath: 'http://localhost:3000'
    publicPath: '/dist'
},

1 个答案:

答案 0 :(得分:1)

将您的webpack.config.js模块导出为函数,并通过mode访问argv

module.exports = (env, argv) => {
    return {
        ...
        output: {
            path: path.join(__dirname, 'dist'),
            filename: 'bundle.js',
            publicPath: argv.mode === 'production' ? 'dist' : 'http://localhost:3000'
        }
    }
};