Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
条件javascript源代码_Javascript_Node.js_Environment Variables_Conditional - Fatal编程技术网

条件javascript源代码

条件javascript源代码,javascript,node.js,environment-variables,conditional,Javascript,Node.js,Environment Variables,Conditional,背景: 我有3个不同的URL,每个环境一个(dev、test、prod),我不想公开客户端中的所有URL(源代码) 如何在客户机代码中公开,只公开与上下文中的环境相对应的代码 注意:据我所知,我需要在构建过程中使用环境变量做一些事情(我使用的是node.js)。然而,我不想接触任何与webpack相关的东西,因为我正在尝试做的是一个独立的包,可以在任何应用程序中导入,而不管它们使用的是什么框架。Webpack插件/配置不是一个选项,但如果需要,我可以使用任何npm包。在构建过程中,您可以检查环境

背景: 我有3个不同的URL,每个环境一个(dev、test、prod),我不想公开客户端中的所有URL(源代码)

如何在客户机代码中公开,只公开与上下文中的环境相对应的代码


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

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

以下npm包完全符合我的要求,您可以基于节点环境变量node_ENV加载条件文件,因此当node_ENV=development时,使用文件/config/development.js创建构建。您可以对配置文件使用不同的扩展名,也可以通过更改环境变量$NODE\u config\u 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);

这是一个web应用程序,你在使用express吗?是的,这是一个web应用程序,我在使用express,但我认为我想做的事情不需要express,因为它是一个http服务器。express.js有NODE_ENV-这是应用程序范围内的一个环境变量。默认安装时,它被设置为调试,您可以将其更改为测试、生产等。阅读更多内容并理解您的观点,但由于这是一个独立的软件包,我无法强制所有人使用express,因此它与条件配置比条件express端点更相关,开发人员必须能够使用他们想要的任何http服务器,如hapi或其他。正如我所说的,这个URL位于客户端而不是后端,如果只是在后台,那么试图隐藏配置就不会有任何问题