我可以在webpack 4中将NODE_ENV =“ staging”与mode =“ production”一起使用吗?

唐泽文也

我的应用使用NODE_ENV来决定应向哪个api服务器请求。

NODE_ENV="production" => https://api.***/
NODE_ENV="staging" => https://api.staging-***/
NODE_ENV="development" => http://localhost:3000/

我想使用mode =“ production”构建登台包,但保留NODE_ENV =“ staging”。

我尝试在下面使用config进行构建,但是bundle.js变成NODE_ENV =“ production”。

{
   mode: "production",
   plugins: [
     new webpack.DefinePlugin({
       'process.env': {
         'NODE_ENV': JSON.stringify("staging")
       }
     })
   ]
 }
生病的人

Webpack-cli已被弃用,并且env的语法将不再适用于Webpack-command(https://github.com/webpack-contrib/webpack-command#the---env-flag-is-nuked)。

为了满足您的要求,我将使用一个简单的env变量并以标准节点方式使用它

var API_URL = {
  production: JSON.stringify('https://foo.bar/api'),
  development: JSON.stringify('http://localhost:3000/api'),
  staging: JSON.stringify('http://foo.stage.bar/api')
}

module.exports = function(argv) {
  const TARGET = process.env.TARGET_ENV ? process.env.TARGET_ENV : 'development';
  return {
    mode: argv.mode ? argv.mode : 'development',
....
    new webpack.DefinePlugin({
        'API_URL': API_URL[TARGET]
    }),
....
}

然后像这样调用webpack:

TARGET_ENV=staging webpack 

这样,您将在应用程序中全局找到您的环境变量API_URL。

我会避免通过define插件重新定义NODE_ENV。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以将HTML Webpack插件与django基本模板一起使用吗?

我可以将FlatfileItemReader与Taskexecutor一起使用吗?

我可以将Materializecss与dart一起使用吗?

我可以将accept()与IOCP一起使用吗?

我可以将HaxeUI与HaxeFlixel一起使用吗?

我可以将Underscore的“ where”与“ or”一起使用吗?

我可以将 AutoMapper 与 Blazor 一起使用吗?

我可以将 Bootstrap 与 RCloud 一起使用吗?

我可以将 mlDatabasesWithForestsOnOneHost 与副本一起使用吗?

我可以将 `eval` 与 `rolling()` 一起使用吗?

我可以将concat与toString一起使用吗?

我可以将 Envoy 与 Linkerd 一起使用吗?

我可以将View pager与视图一起使用吗(不能与片段一起使用)

我可以将MCBrowserViewControllerDelegate与GameViewController类一起使用,而不要与ViewController类一起使用吗?

我可以将 mapreduce 与一对键和一对值一起使用吗?

我可以将Node.js软件包与Django一起使用吗?

Springboot - 我可以将 Jetty 与 SL4J 一起使用吗

我们可以将express4与underscore.js一起使用吗?

将生成功能与NODE_ENV = production一起使用

可以将ThreadStart方法与“异步”一起使用吗?

可以将tput与组合功能一起使用吗?

可以将Internet Explorer与Docker一起使用吗?

可以将MapDotNet与Leaflet一起使用吗?

可以将Specflow与Resharper一起使用吗?

可以将xUnit与LINQPad一起使用吗?

可以仅将JsonSchema与Mongoose一起使用吗?

可以将Realm与Angular 2一起使用吗?

可以将loadImage()与JavaScript Promise一起使用吗?

可以将ViewComponents与Razor页面一起使用吗?