Проект Angular 6 опубликовать как пакет для повторного использования - PullRequest
0 голосов
/ 01 октября 2018

Мы планируем разработать большое приложение с использованием Angular 6. Поэтому мы планировали разработать его, разделив отдельные независимые проекты для каждого модуля, такие как Проект входа в систему, Проект чата, Проект аккаунта и т. Д. И проект Dashboard как родительский для использования.все функции. .Такие из них имеют свои собственные peerDependencies, независимые от других проектов. (См. изображение структуры папок ниже)

Например: Проект чата позаботится обо всех функциях чата, и на панели инструментов это может бытьиспользовать как <chat-footer ></ chat-footer> (см. другое использование проекта и изображение ошибки ниже)

Наша цель - использовать чистую архитектуру в этом проекте. Если разработчик внесет некоторые изменения в проект, он опубликует его как новую версию и другие.разработчики принимают это обновление npm install или командой обновления.

Мы не собираемся публиковать его как платный частный проект в www.npmjs.com , и мыбудет использовать Verdaccio в качестве прокси на нашем частном сервере.

Когда мы опубликуем проект как пакет и тамМы использовали это в другом проекте.это ошибка ниже.Из-за того, что пакетный проект peerDependancies не компилируется. Я получаю (см. Другое использование проекта и изображение ошибки ниже)

ОШИБКА в ./node_modules/nztc-chat-client/src/app/app.module.ts

Сборка модуля не удалась: Ошибка: E: \ Test Projects \ Verdaccio \ test> 001 \ homeModule \ node_modules \ nztc-chat-client \ src \ app \ app.module.ts отсутствует> изКомпиляция TypeScript.Убедитесь, что он находится в вашем tsconfig через свойство «files» или «include».

Отсутствующий файл, похоже, является частью сторонней библиотеки.Файлы TS в> опубликованных библиотеках часто являются признаком плохо упакованной библиотеки.Откройте> проблему в репозитории библиотеки, чтобы предупредить ее автора и попросить ее упаковать> библиотеку, используя угловой формат пакета.

в AngularCompilerPlugin.getCompiledFile (E: \ Test Projects \ Verdaccio \ test> 001 \homeModule \ node_modules \ @ngtools \ webpack \ src \ angular_compiler_plugin.js: 749>: 23) в plugin.done.then (E: \ Тестовые проекты \ Verdaccio \ test> 001 \ homeModule \ node_modules \ @ngtools \ webpack \ src \loader.js: 41: 31) at at process._tickCallback (internal / process / next_tick.js: 188: 7)

После этого я искал упаковку и пытался сделать [ng-packagr] .Но каждый пример показывает ng generate library {project name} создать пакет, используя эту библиотеку. Но все еще не может найти хороший пример для создания пакета или решения для решения моей проблемы

------ Другой проектИспользование и изображение ошибки -------- enter image description here

------ Изображение структуры папки -------- Folder structure image

...