是否可以编写一段在生产版本中会被省略的代码

时间:2018-10-25 07:36:38

标签: javascript angular

是否可以以某种方式“标记”一段代码,以便将其包含在“开发”模式下,而在“生产”模式下省略。

我知道角度有:

if (isDevMode()) {...}

但是我可以避免代码检查是否也是dev模式吗?

3 个答案:

答案 0 :(得分:0)

唯一想到的就是为此使用environment.ts。

在您的environment.dev.ts中:

export const environment = {
    doSomething() {
       // Do your dev stuff here
    }
}

在您的环境中。prod.ts:

export const environment = {
    doSomething() {
        // Leave empty
    }
}

在您的组件/服务/任何可以从环境调用的位置。由于环境将被替换,因此开发代码将仅包含在您的开发包中。

答案 1 :(得分:0)

您可以使用诸如webpack之类的构建工具,并使其包含基于别名并与NODE_ENV结合使用的文件。 NODE_ENV在开发人员模式下为development,在生产模式下为production

最简单的方法是在webpack.dev.config中使用别名加载dev文件,并在webpack.prod.config中加载生产文件。

// dev module.exports = { //... resolve: { alias: { Something: path.resolve(__dirname, 'dev/foo/') } } }; // prod module.exports = { //... resolve: { alias: { Something: path.resolve(__dirname, 'prod/foo/') } } };

如果要使用一个配置文件,则可以在配置中使用三元组。

答案 2 :(得分:0)

只需将您的环境文件导入您的组件中即可:

import { environment } from './environments/environment';

并在您的脚本中执行:

if (!environment.production) {
  .....
}