【发布时间】:2019-03-26 22:57:43
【问题描述】:
我目前正在尝试将我的 Angular 2.something 项目升级到最新版本。我有一个自定义的 angular.config 文件,因此我可以构建 2 个使用相同组件“库”的应用程序。但随后 Angular 6 的史诗版本与真正的 Angular 库一起出现了!但是现在我(再次)试图将我的项目重构为这个新版本。
我已经在 DIST 文件夹中构建了一个组件库(名为“core”)。甚至 Typescript 也可以使用这个库。但是当我尝试构建我的网络应用程序时,Angular CLI 开始抱怨它找不到模块“核心”。
以下代码sn -p是文件夹dist/core中的public_api.d.ts:
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/*"
],
}
然后是时候将模块和组件从库“core”导入到名为“cms”的应用程序中了。
import { WdCoreModule } from 'core';
还没有错误!
现在我已经准备好构建我的项目了:ng serve cms
这将引发以下错误:
projects/cms/src/app/app.module.ts(52,30):错误 TS2307:找不到模块“核心”。
我一直在寻找解决这个问题的方法,但我有点卡住了。 有哪位编程英雄可以帮助我吗?
编辑:解决方案的额外信息
我按照以下帖子打包并安装了我的构建库
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
【问题讨论】:
-
您不应该将“核心”映射到“dist”文件夹。创建一个“libs”文件夹或其他东西并映射到该路径(如果它是第 3 方库)。只有捆绑输出应该放在 dist 文件夹中。
-
不,你应该照你做的。但请确保您首先使用
ng build core构建了您的库 - 否则将找不到它 -
这不是第三方库,是我自己的库。我首先做了一个 NG build core,所以我的 dist 文件夹有一个很好的文件夹,里面有所有必需的模块和 public_api.d.ts 文件:)
标签: angular typescript