angular.json исключает ресурсы для сборки разработчика

#angular #typescript #angular-cli

#angular #typescript #angular-cli

Вопрос:

У меня есть robots'txt файл, который я хочу включить только для своих сборок разработчиков.

Как я могу настроить angular.json так, чтобы он ng build --prod не включал robots.txt и ng build делает?

В идеале я хотел бы расширить из configuration prod и добавить robots.txt кроме того, вот так:

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

Спасибо

Ответ №1:

Попробуйте использовать Angular environments . По умолчанию приложение Angular может быть встроено в development среду или в production environment.

Когда приложение создается для производственного режима, environments/environment.ts файл заменяется на environments/environment.prod.ts file. Следовательно, если вы ссылаетесь на настройки из environment.ts файла в своем коде, вам не нужно указывать.

Вы можете создать конфигурацию для своего robots.txt с другими значениями, подобными этому:

environment.ts

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

environment.prod.ts

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

и в любом Component or Service , который хочет его использовать, проверьте файл из environment и, если он существует, используйте его:

Service.ts

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


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

  constructor() { }

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

Для получения дополнительной информации о environments перейдите по этой ссылке.

Кроме того, внутри вашего angular.json файла есть объект конфигурации projects.{project-name}.architect.build.configuration. Установите для ресурсов внутри записи prod значение [].

Комментарии:

1. Ах да, подход среды может сработать (хотя и не совсем то, что я хочу …) Установка для записи prod значения [] недопустима, поскольку это останавливает добавление каких-либо ресурсов. angular.json довольно разочаровывает, когда дело доходит до гибкости…