提问者:小点点

使用webpack在节点NODE_ENV上动态require()


我正在用WebPack构建一个简单的NodeJs Lambda。 有一个依赖的node_module基于NODE_ENV使用不同的配置文件

let config = require(`./${process.env.NODE_ENV ? process.env.NODE_ENV : 'dev'}_env.js`);

我正在package.json中设置NODE_ENV

     "serve": "set NODE_ENV=qa&webpack --mode development --watch",
    "serve-windows": "$env:NODE_ENV=qa&webpack --mode development --watch"

和webpack配置中

mode: process.env.NODE_ENV ? process.env.NODE_ENV : 'default',

无论我做什么,它总是包括dev_env.js忽略我正在设置的NODE_ENV。 我花了一整晚的时间看不同的帖子想弄明白这一点,是不是有什么我做错了?


共1个答案

匿名用户

WebPack模式开发将node_env设置为开发。 请参阅文档:https://webpack.js.org/configuration/mode/#usage

另一个注释defaultqa&webpacknode_env的非标准值。 通常,期望值要么是development,要么是test,要么是production

如果要使用这种方法,则必须使用不同的环境变量,例如:

let config = require(`./${process.env.APP_ENV ? process.env.APP_ENV : 'dev'}_env.js`);
"serve": "set APP_ENV=qa&webpack --mode development --watch",