背景: 我有3个不同的URL,每个环境一个(dev,test,prod),我不想公开客户端中的所有URL(源代码)。
如何在客户端代码中公开,只显示与上下文环境对应的代码?
注意:据我所知,我需要在构建过程中使用环境变量做一些事情(我使用node.js)。但是,我不想触摸与webpack相关的任何内容,因为我尝试做的是一个独立的软件包,可以在任何应用程序中导入,无论他们使用什么框架。 Webpack插件/配置不是一个选项,但如果需要,我可以使用任何npm包。
答案 0 :(得分:1)
在构建过程中,您可以检查环境变量,然后复制配置文件。例如,您可以将URI保留在var options = new RewriteOptions()
.AddRedirectToHttps(301, 44388);
中,然后在构建期间将其复制/重命名为/config/<env>.js
。您的网址可以从中导出。
答案 1 :(得分:0)
以下npm包完全符合我的要求https://www.npmjs.com/package/config,您可以根据节点环境变量NODE_ENV加载条件文件,因此当NODE_ENV =开发时,文件/config/development.js用于创建构建。您可以对配置文件使用不同的扩展名,也可以通过更改环境变量$ NODE_CONFIG_DIR来自定义配置文件夹路径,这是一个例子:
const config = require('config');
process.env.$NODE_CONFIG_DIR = './' // relative path ./config
const url = config.get('url');
//if NODE_ENV is development will load the file config/development.js
console.log(url);