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'
}