RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
Как мне сказать angular-cli включить файл из «src / assets» в корень «dist» при сборке?
Мы выполняем развертывание на хосте Windows, и нам нужно включить файл «web.config», чтобы сообщить IIS о маршрутизации всего для индексации. Мы делали это до RC4, но со всеми обновлениями он провалился (я не помню, как мы это сделали).
Я просматривал документы репозитория GitHub и не нашел ничего полезного по этой теме. Может я не в том месте?
В ToC есть пункт «Добавление дополнительных файлов в сборку», но, похоже, этого раздела не существует.
angular
angular-cli
Кизмар
источник
источник
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. Я также добавил пост сценария сборки:"postbuild": "npm run copy:webConfig"
. Были и другие проблемы, пытающиеся заставить копию работать, но это помогло.Ответы:
Свойство "assets" файла angular-cli.json можно настроить для включения пользовательских файлов в сборку angular-cli webpack. Итак, сконфигурируйте значение свойства "assets" как массив. Например:
Приведенная выше конфигурация скопирует config.jsn и .htaccess в папку dist во время сборки веб-пакета angular-cli. вышеуказанная настройка работала в angular-cli версии 1.0.0-beta.18
источник
Текущий правильный ответ:
Команда добавила поддержку копирования определенных файлов как есть в выходную папку (
dist
по умолчанию) в более поздней версии Angular CLI (будет бета-версия 17 или 19 - это было в последних выпусках 1.x уже много лет).Вы просто добавляете его в массив,
angular-cli.json
например:(Обратите внимание, что путь указан относительно
src
папки)Я лично использую его, и он отлично работает.
Начиная с бета-версии 24, я добавил функцию в Angular CLI, которая гарантирует, что всеassets
файлы и папки обслуживаются с сервера разработки webpack, аng test
не только при запускеng serve
.Он также поддерживает обслуживание файлов ресурсов на сервере разработки webpack, используемом для модульных тестов (
ng test
).(в случае, если вам нужны файлы JSON для тестов, или вы просто ненавидите видеть 404 предупреждения в консоли).
Они уже обслуживаются из-
ng e2e
за переполненияng serve
.И у него также есть более продвинутые функции, такие как фильтрация того, какие файлы вы хотите из папки, и отличное имя выходной папки от исходной папки:
Вы также можете обратиться к официальной документации: Руководство по Angular - Конфигурация рабочей области .
.
[ТОЛЬКО ДЛЯ АРХИВИРОВАНИЯ] Исходный ответ (6 октября 2016 г.):
К сожалению, в настоящее время это не поддерживается (начиная с бета-версии 16). Я высказал конкретную озабоченность команде (файлы web.config), но, похоже, это не произойдет в ближайшее время (если вы не разветвляете CLI и т. Д.).
Следите за этим вопросом, чтобы получить полное обсуждение и возможные будущие подробности.
PSДля файла JSON вы можете вставить его
./src/assets/
. Эта папка копируется как есть./dist/assets/
. Это текущее поведение.Раньше, во времена systemJS, была другая
./public/
папка, в которую копировали./dist/
напрямую, но ее нет в версиях Webpack, о которых говорится в упомянутой выше проблеме.источник
Одно из решений (хотя, на мой взгляд, это немного похоже на взлом) - объявить в вашем
main.ts
файле переменную, для которой требуется дополнительный файл, который вы хотите включить в вывод сборки webpack.EX:
Когда webpack встречает этот оператор объявления переменной, он генерирует
main.ts
необработанныйweb.config
файл как часть вывода сборки:Идеальным решением была бы конфигурация webpack, но я пока не могу понять, как angular-
angular-cli.json
cli справляется с этим (beta.16).Итак, если у кого-то есть лучший ответ, который расширяет конфигурацию webpack для проекта, созданного с помощью angular-cli, я бы хотел его услышать.
источник
Для читателей Angular 8 ,
.htaccess
должно бытьsrc/.htaccess
. Увидеть ниже,Убедитесь, что вы поместили
.htaccess
файл вsrc
каталог вашего проекта.(Если вам нужен действующий
htaccess
файл, вы можете найти его здесь - https://stackoverflow.com/a/57126352/767625 )Вот и все. Теперь это должно быть скопировано при ударе
ng build --prod=true
.Надеюсь, это кому-то поможет.
Ура,
источник
angular.json
неangular-cli.json
упоминается в предыдущих ответах.В файле angular-cli.json есть раздел "скрипты". Вы можете добавить туда все сторонние файлы javascript.
источник
В моем случае я использовал Angular версии 5 , поэтому я попытался создать файл с именем Staticfile.txt при запуске команды ng build --prod. обязательно укажите расширение файла, иначе он не создаст файл.
источник
Измените angular.json.
Добавить запись в массив активов:
источник