在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'
},
答案 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'
}
}
};