2

我正在尝试使用 Angular 9,我想创建一个项目,然后创建一个库项目并开始向其中添加我想稍后在 GitHub 上发布的通用模块,并在我的项目中本地使用这些库。

以下是相关的依赖项:

Angular CLI: 9.0.0-rc.6
Node: 13.3.0
OS: MacOS 10.15.2
PNPM: 4.3.0

首先,我创建了我的角度项目,ng new foo并添加了角度材料依赖项ng add @angular/material

然后我创建了我的库项目,ng new tuxin-ec --create-application=false 并在其中执行了ng generate library animated-images --prefix=tuxin-ec.

我打算创建 15 个通用库以供使用和发布。这是这样做的方法吗?只ng generate library为每一个做?

目前在tuxin-ec我拥有的项目目录中的项目下animated-images,其中包含一个模块、服务和控制器,我将相关代码添加到控制器 html 和 css 中。

我想tuxin-ec在我的项目中本地链接。所以在我运行的tuxin-ec根目录下和我运行pnpm linkfoo目录下pnpm link tuxin-ec

在目录foonode_modules我也有 tuxin-ec 链接目录。

问题是我想做,import {AnimatedImagesModule} from 'tuxin-ec 但它抱怨找不到tuxin-ec

我能做的是import {AnimatedImagesModule} from 'tuxin-ec/dist/animated-images'

但即使那样,当我尝试AnimatedImagesModule在我的项目中导入时,我也会收到一个错误class AnimatedImagesModule is not an angular module

有什么方法可以达到我的预期结果吗?

谢谢你!

4

1 回答 1

5

所以我用谷歌搜索了一些,我发现了以下精彩的教程:https ://willtaylor.blog/complete-guide-to-angular-libraries/

在那里我明白我没有链接我的整个项目,我链接了特定的模块,这实际上很有意义:)

所以在 dist/animated-images 目录中我应该执行npm link然后在我的项目中我应该完成npm link animated-images。而已!很简单!

于 2019-12-16T18:24:17.620 回答