#angular #monorepo #nrwl-nx
#угловатый #монорепо #nrwl-nx
Вопрос:
Я потратил некоторое время на работу над проектом PowerShell для автоматизации некоторых сборок моих приложений на C # и Angular, основанных на @Nrwl NX monorepos. До этого все работало нормально, но когда я попробую простой:
nx build --baseHref=/apps/admin/ --deployUrl=/apps/admin/ --watch
Теперь я получаю сообщение об ошибке
ENOENT: "no such file or directory, open 'd:ProjectsTheAppSourceAngular.Apps/apps/the-client/src/environments/environment.prod.ts'"
Проблема: я предполагаю, что он ищет environment.prod.ts из-за раздела ReplaceFile, но поскольку я создаю в local dev, я бы подумал, что он вообще не должен выполнять замену.
Кроме того: он ищет файл среды APP-CLIENT, хотя я создаю приложение APP-ADMIN.
Некоторые моменты, которые могли вызвать проблемы во время моего проекта автоматизации сборки:
- Я переименовал все конфигурации приложения в workspace.json. Так, например, «production» стал «production-client1», который использует файл environment.prod.client1.ts при замене
«Замены файлов»: [
{
«заменить»: «приложения / app-admin/src/ environments/environment.ts»,
«с помощью»: «приложения / app-admin/src/environments/environment.prod.orgb.ts» }
], - В 1) выше я упомянул файл environment.prod.client1.ts, который изначально является файлом environment.prod.ts. Поскольку в ошибке упоминается, что он не может найти этот файл, возможно, проблема либо здесь, либо в том, что я должен изменить какую-то дополнительную конфигурацию, чтобы заставить это работать?
Последнее замечание: мой командлет powershell вызывает следующую команду:
nx build portfolio-client --deleteOutputPath=false --baseHref=/apps/client/ --deployUrl=/apps/client/ --configuration=staging-client-client1
И это работает как шарм, как и приложение администратора и варианты для каждого клиента. Только во время сборки я сталкиваюсь с этими проблемами.
Правка 1:
Я создал фиктивные файлы для environment.prod.ts и environment.staging.ts в двух проектах типа «application», которые у меня есть, и это решило проблему. Эти файлы пустые, хотя я не уверен, почему сборка для Dev / local не просто работает с файлом environment.ts
Ответ №1:
Я нашел ответ в комментариях к следующей сообщенной проблеме GitHub: «Ошибка: ENOENT: нет такого файла или каталога» для удаленного файла # 3370
Все сводилось к тому, что файл Nrwl file-hasher.js использует хэши git, и поскольку я не зафиксировал эти изменения, он искал старое имя файла. Я решил эту проблему, разместив и зафиксировав все свои изменения в текущей ветке.
Если смотреть дальше, то это, похоже, ошибка, которая позже была исправлена в Nx 10.0.2 и выше, до которой мы еще не обновились.