У меня есть 2 папки на моем компьютере, один проект Angular CLI и один проект машинописного текста, где я разрабатываю компоновщики для архитекторов Angular CLI. Это моно репо, и компоновщики предназначены только для внутреннего использования, и я никогда не планирую публиковать.Я пытался ссылаться на сборщиков 4 различными способами:
относительно:
/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "relative/path/to/my-builders:my-browser"
}
}
}
}
}
установить локальный модуль (файл:):
/* package.json */
{
"devDependencies": {
"my-builders": "file:relative/path/to/my-builders"
}
}
/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}
npm link («правильный» путь) (не вариант, см. https://github.com/angular/angular-cli/issues/13055#issuecomment-442815952)
, запустите npm link
в папке my-builders и затем npm link my-builders
в папке проекта angular cli
/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}
пакет npm:
запустите npm pack
в папке my-builders
/* package.json */
{
"devDependencies": {
"my-builders": "file:relative/path/to/my-builders-version.tgz"
}
}
/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser"
}
}
}
}
}
Все способы, кроме пакета npm, приводят к этой вводящей в заблуждение ошибке ng build
Angular Compiler был обнаружен, но это был экземпляр неправильного класса. Это, вероятно, означает, что у вас установлено несколько пакетов @ ngtools / webpack. Вы можете проверить это с помощью npm ls @ngtools/webpack
, а затем удалить лишние копии.
вывод npm ls @ngtools/webpack
`-- @angular-devkit/build-angular@0.8.3
`-- @ngtools/webpack@6.2.3
Необходимость запуска npm pack
для каждого небольшого изменения нецелесообразна, есть ли лучший способ для разработки строителя на местном уровне? (Предпочитаю строителей бытьв собственном проекте для разделения).
Дублирование репо https://github.com/gatimus/builder-development
Редактировать:
Я также пытался
/* angular.json */
{
"projects": {
"my-cli-proj": {
"architect": {
"build": {
"builder": "my-builders:my-browser",
"options": {
"preserveSymlinks": true
}
}
}
}
}
}
и ng build --preserve-symlink
, те же результаты.