Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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_Html_Node.js - Fatal编程技术网

Javascript 如何在客户端代码中设置环境变量?

Javascript 如何在客户端代码中设置环境变量?,javascript,html,node.js,Javascript,Html,Node.js,我需要设置一个不同的关键取决于我们是否在开发或生产。在没有内在运行时环境的客户端中,什么是实现这一点的好方法 谢谢 为什么不加载一个不同的脚本呢?您可以基于GET参数动态创建脚本,例如,然后使用服务器端语言(如PHP)基于该参数更改代码内容 您还可以在web服务器上使用重写规则,使其看起来更干净。一种方法是将环境变量从服务器注入客户端的全局命名空间 例如,如果您在PHP中执行此操作: <script> var env = <?php echo $your_env_var

我需要设置一个不同的关键取决于我们是否在开发或生产。在没有内在运行时环境的客户端中,什么是实现这一点的好方法


谢谢

为什么不加载一个不同的脚本呢?您可以基于GET参数动态创建脚本,例如,然后使用服务器端语言(如PHP)基于该参数更改代码内容


您还可以在web服务器上使用重写规则,使其看起来更干净。

一种方法是将环境变量从服务器注入客户端的全局命名空间

例如,如果您在PHP中执行此操作:

<script>
    var env = <?php echo $your_env_variable; ?>; // globally accessible variable
</script>
在nodejs中,指定环境的“官方”方式是使用“NODE_ENV”。因为您没有提到用于提供HTML内容的框架,所以我将使用expressjs作为我的答案

您只需在视图模板中执行此操作(我正在使用EJS)


您考虑过使用构建脚本吗?当你最小化代码时,你也会将变量值从开发转换到生产。所谓“无内在运行时环境”,你的意思是它可能在解释器外壳中执行,而不是部署在网站上吗?@Christoferelasson我认为这可能是最好的途径,谢谢你的建议。在客户端,你有一个“窗口”对象…也许你可以关闭该(?)
script(type='text/javascript').
    var env = passedInEnvVar
  var key = '<%= keys[process.env.NODE_ENV] %>'
var keys = {
  'development': 'dev-key',
  'production': 'prod-key'
}