我正在尝试查找用于在Angular中导入库的修复程序。
我正在关注github上的这一未解决问题。
我无法解决这个问题。我的第一个库已构建,当我尝试导入时,在dist文件夹和新库中都存在该错误。
我尝试过的步骤
1)根据编译器选项下github上的未解决问题导入tsconfig.lib.json
导入未发布的lib的NgModule
import {MyWidgetsModule} from "../../../my-widgets/src/lib/my-widgets.module";
甚至尝试过
import {MyWidgetsModule} from "my-widgets";
"paths": {
"my-widgets/*": [
"dist/my-widgets/*"
]
}
},
错误堆栈
'rootDir'应该包含所有源文件。
2)
如果我删除了ngModule中的模块导入,则会出现类似找不到的错误 模块。
注意
我的主要tsconfig文件包含所有正确的导入。
我使用Angular cli命令ng g library <name>
修改
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
],
"paths": {
"my-widgets": [
"dist/my-widgets"
],
"my-widgets/*": [
"dist/my-widgets/*"
],
"my-widgets-extn": [
"dist/my-widgets-extn"
],
"my-widgets-extn/*": [
"dist/my-widgets-extn/*"
],
"my-framework": [
"dist/my-framework"
],
"my-framework/*": [
"dist/my-framework/*"
],
"my-framework-extn": [
"dist/my-framework-extn"
],
"my-framework-extn/*": [
"dist/my-framework-extn/*"
]
}
}
}
我已经创建了四个库,所以请不要感到困惑..
答案 0 :(得分:1)
我认为问题仅在于路径。您将baseUrl
写为src
,但您写的paths
好像是./
。假设您的工作区结构如下:
dist/my-widgets (compiled)
projects/my-widgets (TS)
projects/my-app (ts)
tsconfig.json
您可以在我的应用程序中使用它:
import {MyWidgetsModule} from "my-widgets";
在tsconfig中,您需要添加路径:
"baseUrl": "./",
"paths": {
"my-widgets": [
"dist/my-widgets"
]
}
或者,如果您要使用未编译的版本,则可以对其进行编辑并让ng serve
进行更改:
"baseUrl": "./",
"paths": {
"my-widgets": [
"projects/my-widgets/src/public-api"
]
}
这也取决于库的入口点,默认情况下,我相信,按角度cli可以按照我在上面所写的方式创建它,并将所有可导入的项收集在src/public-api.ts
中。