条件JavaScript源代码



>背景:我有 3 个不同的 URL,每个环境(开发、测试、生产(一个,我不想公开客户端中的所有 URL(源代码(。

如何在客户端代码中公开与上下文中的环境对应的代码?

注意:据我了解,我需要使用环境变量在构建过程中做一些事情(我正在使用node.js(。但是,我不想接触与 webpack 相关的任何内容,因为我正在尝试做的是一个独立的包,可以导入到任何应用程序中,无论它们使用什么框架。Webpack 插件/配置不是一个选项,但如果需要,我可以使用任何 npm 包。

在构建过程中,可以检查环境变量,然后复制配置文件。 例如,您可以将 URI 保留在 /config/<env>.js 中,然后在构建过程中将其复制/重命名为/settings.js。 您的 URL 可以从中导出。

下面的 npm 包完全符合我的要求 https://www.npmjs.com/package/config,你可以根据节点环境变量NODE_ENV加载条件文件,所以当NODE_ENV=development时,使用文件/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);

最新更新