我正在从我的项目中将一些实用程序函数提取到npm modules
中,以便我可以在其他项目中使用它们。
其中一些功能依赖于API Keys
,并对API Keys
和DEV
环境使用不同的PROD
。
在主项目中,这不是问题,因为我的build
流程正确设置了environment vars
,而我的webpack build
流程会生成正确的keys
源代码。
如果我将API Keys
中的npm modules
包含在同一个DEV | PROD
三元组中,那么主要项目的environment vars
对于模块的工作方式是否与它在主项目中的代码?
// mymodule/index.js
export default function() {
return __PROD__ === true ? "abc" : "123"
// ....
}
// project/index.js in __DEV__ environment
import getKey from 'my-module'
getKey() // should return "123"
答案 0 :(得分:0)
我可能误解了你的问题,但你所使用的不是环境变量。它们可能是您正在使用Webpack的DefinePlugin
填充的变量,例如
new webpack.DefinePlugin({
__PROD__: true
})
当Webpack编译代码时,插件会自动将这些神奇的全局变量替换为配置文件中的值。
在节点中使用环境变量的正确方法是process.env
,如process.env.__PROD__
中所示,并使用__PROD__=true node index.js
或更常见的约定{{1}运行程序}}
如果您要将已编译的Webpack代码发布到npm,那么它应该与您为npm compile Webpack配置设置的任何NODE_ENV=production node index.js
值一起使用。