angular.json排除开发开发所需的资产

时间:2020-09-02 08:36:45

标签: angular typescript angular-cli

我有一个robots'txt文件,只想包含在我的开发版本中。

如何设置angular.json,使ng build --prod不包含robots.txt,而ng build包含robots.txt?

理想情况下,我想从prod扩展配置,并添加如下所示的robots.txt:

// ...
{
  "dev": {
    "assets": [
      "extend_here",
      "src/robots.txt"
    ]
  }
}

谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用Angular environments。默认情况下,可以在development环境或production环境中构建Angular应用程序。

为生产模式构建应用程序时,environments/environment.ts文件将替换为environments/environment.prod.ts文件。因此,如果您在代码中引用的是environment.ts文件中的设置,则无需放置。

您可以为robots.txt创建一个具有不同值的配置,如下所示:

environment.ts

export const environment = {
  production: false,
  robotLink: 'src/robots.txt',
};

environment.prod.ts

export const environment = {
  production: true,
  robotLink: '',
};

,然后在要使用的任何ComponentService中,检查environment中的文件,如果存在,请使用它:

Service.ts

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


@Injectable()
export class DataService {  
  
  robotUrl = environment.robotLink;

  constructor() { }

  getData() {
    if (robotUrl) {
    // put your code here
    }
  }
}

有关environments的更多信息,请访问此link

此外,在angular.json文件中有一个配置对象项目。{project-name} .architect.build.configurations。将产品条目中的资产设置为[]。

相关问题