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/*"
]
我创建了我的第一个库,使用新的 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/*"
]