Custom angular 7 library with ionic 4 - Can't resolve '../@ionic/angular/dist/core.ngfactory' build prod 错误

Custom angular 7 library with ionic 4 - Can't resolve '../@ionic/angular/dist/core.ngfactory' build prod error

我们已经构建了小型 angular 7/ionic 4 库,我们希望通过 git url 安装在多个项目内部使用。服务项目正常工作,所有从图书馆进口工作正常。但是当 运行 ng build --prod 我得到以下错误

ERROR in ./node_modules/edetail-core/edetail-core.ngfactory.js 
Module not found: Error: Can't resolve '../@ionic/angular/dist/core.ngfactory' in '/Users/user.name/Documents/ionic/edetails/node_modules/edetail-core'

我尝试了不同的设置 - 将所有内容移动到 devDependencies(主要 package.json),从 peerDependencies(库 package.json)添加和删除包。添加

"lib": {
    "entryFile": "src/public_api.ts",
    "externals": "@ionic/angular"
  }

(lib ng-package.json) 但没有任何帮助。 IonicModule 从 '@ionic/angular' 导入主库模块文件 (edetail-core.module.ts).

这里是ng-package.json

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/edetail-core",
  "lib": {
    "entryFile": "src/public_api.ts"
  }
}

图书馆package.json

{
  "name": "edetail-core",
  "version": "0.0.1",
  "peerDependencies": {
    "@angular/common": "^7.2.0",
    "@angular/core": "^7.2.0",
    "@ionic-native/core": "^5.0.0-beta",
    "rxjs": "^6.3.3",
    "@ionic/angular": "^4.0.0"
  }
}

主要package.json

{
  "name": "edetail-core",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve edetail-test",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",        
    "npm-pack": "cd dist/edetail-core && npm pack",
    "prepare": "npm run build"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~7.2.0",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/forms": "~7.2.0",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic/angular": "^4.0.0",
    "@ng-bootstrap/ng-bootstrap": "^4.0.0",
    "bootstrap": "^4.1.3",
    "core-js": "^2.5.4",
    "rxjs": "~6.3.3",
    "scss-bundle": "^2.4.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.13.0",
    "@angular-devkit/build-ng-packagr": "~0.13.0",
    "@angular/cli": "~7.3.1",
    "@angular/compiler-cli": "~7.2.0",
    "@angular/language-service": "~7.2.0",
    "@ionic/angular-toolkit": "~1.2.0",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.1.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ng-packagr": "^4.2.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tsickle": ">=0.34.0",
    "tslib": "^1.9.0",
    "tslint": "~5.11.0",
    "typescript": "~3.2.2"
  },
  "files": [
    "dist"
  ]
}

非常感谢任何帮助!

只需将行 "@ionic/*": ["node_modules/@ionic/*"] 添加到 tsconfig.json / tsconfig.app.json 文件中的路径

{
    ...
    "compilerOptions": {
        "paths": {
            "@angular/*": ["node_modules/@angular/*"],
            "@ionic/*": ["node_modules/@ionic/*"],
            ...
         }
    }
    ...
}