Angular (CLI) 6 - 本地库发布

Angular (CLI) 6 - Local library publishing

我创建了我的第一个库,使用新的 angular-cli 命令:库。

构建库后,我想将它导入到现有项目中(不发布到 npm),但不幸的是没有运气..实际上,如果我将它复制到 node_modules,它就可以工作,但后来我每次我更新 node_modules 文件夹时都必须这样做。因此,我想在根目录中有一个文件夹 (libs),我可以在其中存储和引用我所有的(自制的)库。

我尝试制作文件夹并将库粘贴到其中,并在 tsconfig.xml 中添加路径选项。这会导致 "cannot find module" 错误(我想我在 cli 设置中遗漏了一些东西,但我不知道是什么)

你知道我错过了什么吗?或者您对这种情况有另一种方法吗?

谢谢 :)

编辑:

tsconfig.json:

{
 "compilerOptions": {
 // code omitted for brevity
  "paths": {
    "my-lib": ["./libs/my-lib"],
  }
}

在 app.module.ts

中导入
import { MyLibraryModule } from 'my-lib'

您是否还导出了“./libs/my-lib”以使其可用?

好的,所以我找到了解决方案。我将库保存在 libs 文件夹中,并做了 "npm install /absolute/path/to/my/library --save" 这似乎是这样做的方法。 (这会创建对本地库而不是 npm 的引用)

希望它能帮助到那里的任何人 ;)

在我的例子中,问题是我的 baseUrl 是 "src" 而我的 "paths" 配置是

"ngx-y-x": [
  "dist/ngx-y-x"
],
"ngx-y-x/*": [
  "dist/ngx-y-x/*"
]

因此,您尝试从 "src" 中找到不存在的 "dist" - 我必须返回一级。

"ngx-y-x": [
  "../dist/ngx-y-x"
],
"ngx-y-x/*": [
  "../dist/ngx-y-x/*"
]