Javascript中的环境变量(Gulp)

Javascript中的环境变量(Gulp),javascript,build,environment,Javascript,Build,Environment,我有一台本地开发机器和一台测试服务器。 现在我有了一个在Javascript中使用的APP_ID。我一直在研究它们在本地机器和测试服务器上的不同之处 大口喝 使用gulp,可以在命令行上添加标志: gulp build --env=production 这样我就可以从文件中获得正确的应用程序ID。 唯一的问题是使用这种方法,我需要在服务器上运行构建,此时我在本地运行gulp并将更改上传到服务器上 可以在服务器上构建吗?在Javascript中使用环境变量还有其他方法吗?我的建议是不要在服务器上

我有一台本地开发机器和一台测试服务器。 现在我有了一个在Javascript中使用的APP_ID。我一直在研究它们在本地机器和测试服务器上的不同之处

大口喝 使用gulp,可以在命令行上添加标志:

gulp build --env=production
这样我就可以从文件中获得正确的应用程序ID。 唯一的问题是使用这种方法,我需要在服务器上运行构建,此时我在本地运行gulp并将更改上传到服务器上


可以在服务器上构建吗?在Javascript中使用环境变量还有其他方法吗?

我的建议是不要在服务器上构建,而是在本地构建,然后使用众多部署解决方案之一(用于php的es.deployer.org)部署到服务器上。通常javascript NPM包甚至将构建输出放在GIT存储库中,以便在其他项目中使用或部署

有关如何在节点(gulp run over节点)中使用env变量的更多信息,请参见

例如,在linux中,可以使用export设置env变量

app.js:

console.log(console.log(process.env.foo))
然后试试看

> export foo=app1

> node app.js
> export foo=app2

> node app.js
Res: 附件1

然后试试看

> export foo=app1

> node app.js
> export foo=app2

> node app.js
Res: 附件2

只有在节点上运行代码服务器端时(例如在gulp上),这才有效。
如果您正在开发客户端库,并且希望创建针对不同环境的不同构建,那么您必须指示gulp这样做

我的建议是不要在服务器上构建,而是在本地构建,然后使用众多部署解决方案之一(es.deployer.org for php)部署到服务器上。通常javascript NPM包甚至将构建输出放在GIT存储库中,以便在其他项目中使用或部署

有关如何在节点(gulp run over节点)中使用env变量的更多信息,请参见

例如,在linux中,可以使用export设置env变量

app.js:

console.log(console.log(process.env.foo))
然后试试看

> export foo=app1

> node app.js
> export foo=app2

> node app.js
Res: 附件1

然后试试看

> export foo=app1

> node app.js
> export foo=app2

> node app.js
Res: 附件2

只有在节点上运行代码服务器端时(例如在gulp上),这才有效。
如果您正在开发客户端库,并且希望创建针对不同环境的不同构建,那么您必须指示gulp这样做

谢谢你的回答。我不明白如何确保例如在我的测试服务器上,app_id=2,本地app_id=1,因为如果我在我的本地机器上构建,它将是1。更新答案,您必须在服务器上设置env变量,而不是在用于启动gulpThanks以获取答案的命令行上!我可以直接在javascript中读取这个服务器环境变量吗?还是我需要把它建进去?因为我在4个js文件中引用了该变量..节点在服务器上运行,显然我的(客户端)js无法读取这些。。当我使用Gulp构建Javascript文件时,您是否建议在Javascript文件中查找并替换?还是有更好的方法来解决这个问题?更新答案以澄清node vs client Side感谢您的回答。我不明白如何确保例如在我的测试服务器上,app_id=2,本地app_id=1,因为如果我在我的本地机器上构建,它将是1。更新答案,您必须在服务器上设置env变量,而不是在用于启动gulpThanks以获取答案的命令行上!我可以直接在javascript中读取这个服务器环境变量吗?还是我需要把它建进去?因为我在4个js文件中引用了该变量..节点在服务器上运行,显然我的(客户端)js无法读取这些。。当我使用Gulp构建Javascript文件时,您是否建议在Javascript文件中查找并替换?或者有更好的方法来解决这个问题吗?更新答案以澄清节点与客户端的区别