环境变量TypeScript

时间:2016-11-16 00:28:19

标签: javascript typescript

假设我有一段代码,我只想在暂存环境中出现(或运行)。我在该环境中设置了一个环境变量(例如,ENV ='staging'),TypeScript是否有办法在编译期间访问该变量?

示例:

if (Enivronment['ENV'] == 'staging') console.log('testing');

会在上述环境中编译为(冗余但有效)if ('staging' == 'staging') ...吗?

2 个答案:

答案 0 :(得分:3)

不,这是不可能的。

如果您的TypeScript文件在Node中运行,则可以使用process.env,因为它是常规的Node API-但是在这种情况下,环境变量是在运行时通过编译文件访问的,而不是在TypeScript编译时访问的

如果您的TypeScript文件在浏览器中运行,则没有process.env,因此您甚至无法在运行时访问它。您可以在构建时用use a tool like Webpack替换对编译文件中process.env变量的引用,使其具有各自的值-但这仍然不是TypeScript的工作。

不幸的是,答案是否定的:TypeScript无法做到这一点,您必须使用其他工具(例如Webpack,甚至只是搜索和替换)将环境变量注入脚本。

答案 1 :(得分:2)

  

是否有一种方法可让TypeScript在编译期间访问该变量

烨。首选使用在节点中 process.env,并且可以使用--define与webpack一起使用。

更多

示例说明如何将其用于构建输出切换:https://basarat.gitbooks.io/typescript/content/docs/tips/build-toggles.html