有没有办法在Angular2 / 4中的生产版本的构建时省略我选择的代码的组件/部分?
我有一个应用程序,它有一个我在本地使用的管理工具。我希望这个管理工具不在应用程序的生产版本中。我当然可以 - 每次进行生产构建时都会对代码进行注释,但是有更优雅的解决方案吗?像条件构建代码的某些部分一样?
我正在寻找类似* ngIf =" buildingForProduction"类型解决方案的类型。它存在吗?
答案 0 :(得分:2)
基于@cyrix的回答。
使用ang cli时,有一个名为environment的文件夹,默认情况下包含文件environment.prod.ts和environment.ts。如果需要,可以为不同的版本添加更多内容,并相应地配置您的应用程序。
这些文件包含如下对象:
export const environment = {
production: false,
myVariable: 'This variable is not included in production build'
};
使用
构建应用时ng build --env=prod
然后ang cli将使用environment.prod.ts。如果你用
构建ng build
然后使用默认的environment.ts。
通过向此环境对象添加变量,您可以在应用程序中导入它并读取变量。像这样你可以检查你是否在生产版本中:
import { Component } from '@angular/core';
import { environment } from './../environments/environment';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor() {
console.log(environment.production); // Logs false for default environment
}
title = 'app works!';
}
答案 1 :(得分:-1)
一种可能的解决方案是修改tsconfig.json并添加要添加的排除,文件夹或文件。
"exclude": [
"**/*file.ts",
"**/*config.ts"
]
不幸的是,每个项目只能有一个tsconfig.json文件,如果有多个像dev,prod,很希望看到这个功能很快就会出现https://github.com/Microsoft/TypeScript/issues/3645。希望它有所帮助。