使用 ng-packagr 打包一个项目@my/common-util 时,没有问题。该类在 abstract-person.ts 中包含一个名为 AbstractPerson 的抽象类。
在另一个名为 @my/common-impl 的项目中,创建了另一个 Person 类,它扩展 AbstractPerson 并使用 @my/common-util 包名导入它。当我使用 ng-packagr 打包它时,我收到以下错误-->
在 options.globals 中没有为外部模块“@my/common/abstract-person”提供名称 - 猜测“abstractPerson”
由于这似乎是一个警告,我继续将 @my/common 和 @my/common-impl 都 npm install 到另一个项目中,但是当我从 @my/common-impl 导入 Person 类时出现以下错误
./node_modules/@my/common-impl/esm5/common-impl.js 中的错误模块未找到:错误:无法解析 'C:\Data\me\ 中的 '@my/common/abst ract-person' node_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\esm5' 解析的请求是一个使用描述的模块文件:C:\Data\me\node_modules\@my\com mmon-impl\package.json(相对路径:./esm5) 使用描述文件后,字段“浏览器”不包含有效的别名配置:C:\ Data\me\node_modules\@my\common-impl\package.json(相对路径:./esm5)解析为模块
我在 package.json 中尝试了一些东西,比如 externals、globals、umdModuleIds(见下文),但这些都没有奏效。
这是 package.json
{
"name": "@my/common-impl",
"version": "1.0.0-alpha.0",
"private": true,
"dependencies": {
"@my/common": "1.0.0-alpha.0"
},
"peerDependencies": {
"lodash": "^4.17.4"
},
"ngPackage": {
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"dest": "dist/common-impl",
"workingDirectory": "../.ng_build",
"lib": {
"entryFile": "src/public_api.ts",
"externals": [
"@my/common/abstract-person"
],
"globals": {
"@my/common/abstract-person": "AbstractPerson"
},
"umdModuleIds": {
"abstract-person" : "AbstractPerson"
}
}
}
}
还需要什么来纠正这个问题?