代码之家  ›  专栏  ›  技术社区  ›  Vahid Najafi

角服务库

  •  1
  • Vahid Najafi  · 技术社区  · 7 年前

    在Angular cli的最新版本中,我们可以使用 ng g library lib-name 命令创建库。如前所述: 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
    
    2 回复  |  直到 7 年前
        1
  •  5
  •   Markus Dresch    7 年前

    在其中生成库的项目用作调试和测试库的主机。

    只需在主机应用程序模块中导入库,确保所有依赖项都可用,并为主机应用程序提供服务。您在库中所做的所有更改都将直接实时重新加载到主机应用程序中。

    注: 你必须进口 projects/foo-lib/src/public_api ,而不是“dist/foo lib”

    例如,使用您的官方图书馆名称 @foo/foo-library ,angular将在正确的位置找到它。

        2
  •  3
  •   Vahid Najafi    7 年前

    第6.2节 ):

    ng build foo-lib --watch
    

    然后,我通过以下方式为应用程序提供服务:

    ng serve
    

    我从中导入模块 dist 目录(因为我可以监视生成的版本):

    import { FooLibModule } from 'dist/foo-lib';
    

    然后,库中的每一个更改都会导致构建版本的更改,并且我的应用程序可以正确地重新加载。

    这个过程似乎有点复杂。

        3
  •  3
  •   Jan Kuri    6 年前

    您可以在main中更新路径 tsconfig.json 从…起

    "paths": {
      "library": {
        "dist/library"
      }
    }
    

    "paths": {
      "library": {
        "projects/library/src/public-api"
      }
    }
    

    这样,您就不需要为您的库启动单独的构建,而且重构也可以工作。

    推荐文章