当使用ng-packagr打包@my/common-util项目时,没有问题。这个类包含一个名为AbstractPerson的抽象类,在abstract-person.ts中。
在另一个名为@my/common-impl的项目中创建了另一个继承AbstractPerson并使用@my/common-util包名导入它的Person类。当我使用ng-packagr对其进行打包时,会出现以下错误 ->
在options.globals中未提供外部模块'@my/common/abstract-person'的名称 - 猜测为'abstractPerson'
由于看起来这是一个警告,我继续将@my/common和@my/common-impl都安装到另一个项目中,但是当我从@my/common-impl导入Person类时,会出现以下错误
ERROR in ./node_modules/@my/common-impl/esm5/common-impl.js Module not found: Error: Can't resolve '@my/common/abst ract-person' in 'C:\Data\me\node_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\esm5' Parsed request is a module using description file: C:\Data\me\node_modules\@my\co mmon-impl\package.json (relative path: ./esm5) Field 'browser' doesn't contain a valid alias configuration after using description file: C:\Data\me\node_modules\@my\common-impl\package.json (relative path: ./esm5) resolve as module 我尝试了几种方法,比如在package.json中使用externals、globals、umdModuleIds(见下文),但这些都没有起作用。
以下是package.json
这需要进一步的纠正措施吗?
在另一个名为@my/common-impl的项目中创建了另一个继承AbstractPerson并使用@my/common-util包名导入它的Person类。当我使用ng-packagr对其进行打包时,会出现以下错误 ->
在options.globals中未提供外部模块'@my/common/abstract-person'的名称 - 猜测为'abstractPerson'
由于看起来这是一个警告,我继续将@my/common和@my/common-impl都安装到另一个项目中,但是当我从@my/common-impl导入Person类时,会出现以下错误
ERROR in ./node_modules/@my/common-impl/esm5/common-impl.js Module not found: Error: Can't resolve '@my/common/abst ract-person' in 'C:\Data\me\node_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\esm5' Parsed request is a module using description file: C:\Data\me\node_modules\@my\co mmon-impl\package.json (relative path: ./esm5) Field 'browser' doesn't contain a valid alias configuration after using description file: C:\Data\me\node_modules\@my\common-impl\package.json (relative path: ./esm5) resolve as module 我尝试了几种方法,比如在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"
}
}
}
}
这需要进一步的纠正措施吗?
"katex"
的值应该是暴露的窗口对象或默认导出,例如"katex": "katex"
,请参见 https://github.com/ng-packagr/ng-packagr/blob/master/docs/dependencies.md#resolving-umd-module-identifiers - Sam Tsai"@fortawesome/angular-fontawesome": "@fortawesome/angular-fontawesome"
,我还尝试了"@fortawesome/angular-fontawesome": "fortawesome.angular-fontawesome"
,但没有起作用! - Murhaf Sousli