В настоящее время я пытаюсь обновить свой проект Angular 2.something до последней версии. У меня был собственный файл angular.config, поэтому я мог создать два приложения, использующих одну и ту же библиотеку компонентов. Но затем прибыл грандиозный выпуск Angular 6 с настоящими библиотеками Angular! Но теперь я застрял (снова), пытаясь реорганизовать свой проект до этой новой версии.
Я дошел до создания библиотеки компонентов (названной «core») в папке DIST. Даже Typescript подходит для этой библиотеки. Но когда я пытаюсь создать свое веб-приложение, Angular CLI начинает жаловаться, что не может найти «ядро» модуля.
Следующий фрагмент кода - это public_api.d.ts в папке dist / core:
export { WdCoreModule } from './lib/wd-core.module';
export { wdApi } from './lib/core/wd.service';
export { ProcessTokenComponent } from './lib/core/process-token.component';
export { GroupByPipe } from './lib/core/group-by.pipe';
export { AvatarComponent } from './lib/avatar/avatar.component';
export { GameElementsModule } from './lib/game-elements/game-elements.module';
export { AchievementsComponent } from './lib/game-elements/achievements/achievements.component';
export { ModalComponentComponent } from './lib/modal-component/modal-component.component';
export { BaseModalService, BaseModalComponent } from './lib/core/basemodal.service';
export { NavMenuComponent } from './lib/nav-menu/nav-menu.component';
.... More exports ahead
Я добавил путь к этой библиотеке в свой tsconfig.json
"paths": {
"core": [
"dist/core"
],
"core/*": [
"dist/core/*"
],
}
Затем пришло время импортировать модули и компоненты из «ядра» библиотеки в приложение под названием «cms».
import { WdCoreModule } from 'core';
Ошибок пока нет! Теперь я готов построить свой проект с помощью: ng serve cms
Это вызовет следующую ошибку:
Projects / cms / src / app / app.module.ts (52,30): ошибка TS2307: не удается найти модуль «core».
Я повсюду искал решение этой проблемы, но я как бы застрял. Любой герой кодирования, который может мне помочь?
Изменить: дополнительная информация о решении
Я выполнил следующий пост, чтобы упаковать и установить свою библиотеку сборки
https://blog.angularindepth.com/creating-a-library-in-angular-6-part-2-6e2bc1e14121
Следующие 2 команды помогли мне:
//package.json
"npm_pack": "cd dist/core && npm pack",
//then
npm install dist/core/core-0.0.1.tgz --save
2 ответа
Вы должны связать вашу сборочную библиотеку (.tgz) в вашем package.json. Путь ts.config предназначен только для разработки.
У меня была такая же проблема, и я нашел решение, которое не требовало от меня упаковки библиотеки во время разработки.
Я решил добавить пути также к файлу tsconfig.app.json, присутствующему в каталоге приложения.
{
"compilerOptions": {
...
"paths": {
"ika-admin-lib": [
"../dist/name-lib"
],
"ika-admin-lib/*": [
"../dist/name-lib/*"
]
}
}
(больше контекста здесь http : //codecleane.rs/2019/07/09/fixing-error-ts2397-cannot-find-module-angular-custom-library/ )
Похожие вопросы
Новые вопросы
angular
Вопросы по Angular (не путать с AngularJS), веб-фреймворку от Google. Используйте этот тег для угловых вопросов, которые не относятся к конкретной версии. Для более старой веб-платформы AngularJS (1.x) используйте тег angularjs.