Angular CLI - 使用通过“ng new library”创建的自定义库时“找不到模块”

The*_*eal 10 angular-cli angular

在使用ng new library lib-name.

我正在尝试按照文档导入库,如下所示:

import {MyLibModule} from 'ngx-mylib';
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

 error TS2307: Cannot find module 'ngx-mylib'.
Run Code Online (Sandbox Code Playgroud)

我做了ng build ngx-mylib并验证了我的 tsconfig.json 具有以下路径(使用 CLI 自动添加):

"paths": {
      "ngx-mylib": [
        "dist/ngx-chartjs"
      ],
      "ngx-mylib/*": [
        "dist/ngx-chartjs/*"
      ]
    }
Run Code Online (Sandbox Code Playgroud)

公共 api.ts:

export * from './lib/charts.service';
export * from './lib/chart.component';
export * from './lib/charts.module';
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

Jos*_*tos 2

构建库后,您必须打包它。

转到您的 dist 文件夹并运行

npm pack
Run Code Online (Sandbox Code Playgroud)

这将创建一个 your-lib-name.tgz 文件,然后您可以在您的项目中使用它。

像这样使用它:

npm install path-to-your-tgz-file/your-lib.tgz
Run Code Online (Sandbox Code Playgroud)

您还可以将其发布到 npm 或私有存储库。

  • @Chrillewoodz 这就是我尝试过的,但这个问题是关于我得到的错误。 (2认同)