在最新版本的Angular cli中,我们可以使用ng g library lib-name
命令来创建库。如Angular docs所述:
ng serve <project>
并且:
<project> The name of the project to build. Can be an app or a library.
因此,我们可以提供图书馆。但是当我上菜时会遇到以下错误:
Project 'ngx-tab-component' does not support the 'serve' target.
Error: Project 'ngx-tab-component' does not support the 'serve' target.
at ServeCommand.initialize (C:\Users\vahidnajafi\angular\ngx-tab-app\node_modules\@angular\cli\models\architect-command.js:53:19)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
at Function.Module.runMain (module.js:695:11)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
答案 0 :(得分:2)
在其中生成库的项目将用作调试和测试它的主机。
只需将您的库导入主机应用程序模块中,确保所有依赖项均可用并为主机应用程序提供服务。您在库中所做的所有更改都将直接实时重新加载到主机应用程序中。
注意: 您必须导入 projects/foo-lib/src/public_api
,而不是'dist / foo-lib'
使用您的正式图书馆名称,例如@foo/foo-library
,angular会在正确的位置找到它。
答案 1 :(得分:2)
您可以从
更新主tsconfig.json
中的路径
"paths": {
"library": {
"dist/library"
}
}
到
"paths": {
"library": {
"projects/library/src/public-api"
}
}
然后,您无需为库开始单独的构建,也可以重新构建。
答案 2 :(得分:0)
最终找到了解决方案。
首先,我遵循以下步骤查看库的内置版本(由 Angular Cli 6.2 提供):
ng build foo-lib --watch
然后我可以通过以下方式为应用程序提供服务
:ng serve
然后我从dist
目录中导入模块(因为我可以观看构建的版本):
import { FooLibModule } from 'dist/foo-lib';
然后我的库中的所有更改都会导致生成版本的更改,并且我的应用程序可以正确地重新加载。
似乎过程有点复杂。