Библиотека Angular 6: библиотека сборки ng в конвейере CI для создания выпуска lib - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь создать библиотеку Angular 6 для интеграции CI, не интегрируя ее в приложение Angular.(по многим причинам)

Что я сделал до сих пор:

  • создайте package.json для установки всех зависимостей библиотеки
  • создайте angular.json как обычное приложение angular6, ссылающееся на файлы ci (см. Ниже)
  • , дублирует все ng-packages.\*.json до ng-package.ci.\*.json и обновляет их пути, чтобы ссылаться на нужные файлы и каталоги (node_modules, entryfiles и т. Д.)
  • продублируйте все ts-config.\*.json до tsconfig.ci.\*.json и обновите их пути, чтобы они указывали на нужные файлы и каталоги (src, dist и т. Д.)

Я ожидал, запустивng build, чтобы иметь возможность собрать библиотеку, но вместо этого у меня есть это сообщение:

Версии @ angular / compiler-cli и typcript не могут быть определены.

(Но все пакеты установлены; я проверяю его дважды)

Кто-нибудь когда-нибудь пытался собрать свою библиотеку Angular 6 без использования библиотеки внутри приложения?

Thx

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я отвечаю на ваш ответ, потому что мне удалось решить все мои проблемы.

  • Теперь я могу создавать (тестировать, задерживать) угловую библиотеку в конвейере CI
  • Я могу интегрировать эту библиотеку в угловой проект.

Вот как я это сделал.Я создал библиотеку в почти пустой директории.Чтобы сделать ng generate library my-lib --skip-package-json --skip-ts-config, вам нужно иметь файл package.json и файл angular.json в этом каталоге.Я выбрал эти файлы из нового нового приложения ng new app и удалил ссылку на приложение из рабочей области в angular.json (в разделе проектов)

Как только библиотека была сгенерирована, я создал папку ciв корне, куда я скопировал файлы tsconfig. *. json, karma.json, ng-package.json и package.json.Я сохранил исходные файлы в корне, чтобы иметь возможность использовать библиотеку в интегрированном режиме в приложении.(просто нужно добавить ссылку на lib в angular.json вашего приложения, например, если он был сгенерирован + путь в stconfig вашего приложения)

Я обновил пути во всех файлах в папке ci вчтобы иметь возможность запускать такие команды, как:

  • ng lint --format stylish --tslint-config ci/tslint.ci.json
  • ng build, установив для проекта по умолчанию в angular.json значение my-lib anf, указывающее на tsconfig иng-package в папке ci

Один совет, package.json в корнях должен иметь все зависимости от нового углового приложения, чтобы иметь возможность собирать или тестировать библиотеку.

Надеюсь, это краткое объяснение поможет.

0 голосов
/ 04 июня 2018

В настоящее время это невозможно, но здесь есть открытый вопрос:

https://github.com/angular/angular-cli/issues/10751

...