角服务库

时间:2019-01-11 12:42:44

标签: angular angular-cli angular-library

在最新版本的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

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';

然后我的库中的所有更改都会导致生成版本的更改,并且我的应用程序可以正确地重新加载。

似乎过程有点复杂。