use*_*212 29 javascript webpack
我有一个简单的webpack.config.js
module.exports = {
entry: "./app.js",
output: {
filename: "bundle.js"
},
}
Run Code Online (Sandbox Code Playgroud)
我想通过值entry
和output
通过命令行参数.这可能吗,我该怎么做?
Axn*_*yff 36
webpack.config.js
也可以导出一个可以返回conf对象的env函数.因此,你可以有一个webpack配置,如:
module.exports = env => {
return {
entry: env === "production" ? "./app.js": "app-dev.js",
output: {
filename: "bundle.js"
},
}
};
Run Code Online (Sandbox Code Playgroud)
然后从命令行(或package.json)调用webpack,如下所示:
webpack --env=production
Run Code Online (Sandbox Code Playgroud)
adr*_*ian 14
您可以env
从命令行为变量提供自定义参数,因此对于此示例,您可以调用:
webpack --env.entry='./app.js' --env.output='bundle.js'
并通过执行在您的 webpack 中使用它们
module.exports = env => ({
entry: env.entry,
output: {
filename: env.output
},
});
Run Code Online (Sandbox Code Playgroud)
Pat*_*eta 11
您还可以使用以下命令将多个键值对传递给您的配置--env=key=value
:
webpack --env=mode=production --env=branch=develop
Run Code Online (Sandbox Code Playgroud)
或(使用 webpack-dev-server 进行开发):
webpack serve --env=mode=production --env=branch=develop
Run Code Online (Sandbox Code Playgroud)
webpack.config.js
看起来像这样:
webpack --env=mode=production --env=branch=develop
Run Code Online (Sandbox Code Playgroud)
以这种方式传递的所有值都可以作为配置中的对象使用,这使得它们易于使用。
webpack serve --env=mode=production --env=branch=develop
Run Code Online (Sandbox Code Playgroud)
您可以使用--env
CLI 参数将任意参数传递给配置。
例如,以下命令:
webpack --env entry=./entry.js --env output=./output.js
Run Code Online (Sandbox Code Playgroud)
将产生以下 env 对象:
{entry: './entry.js', output: './output.js'}
Run Code Online (Sandbox Code Playgroud)
然后您可以在配置中使用它,如下所示:
module.exports = env => ({
entry: env.entry,
output: {
filename: env.output
},
});
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容:Webpack - 环境变量
归档时间: |
|
查看次数: |
21764 次 |
最近记录: |