角度项目自动导入对于自定义库是错误的

我需要一些帮助来解决一个不会阻塞我的代码的问题,但这确实很烦人。

我开始编写一个angular 8项目,然后意识到我有一些核心功能和组件想要放置在单独的库中。 然后,我使用ng generate library foo创建了库并进行了构建。 这样成功更新了angular.json文件

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json","version": 1,"newProjectRoot": "projects","projects": {
    "configuratore": {
      "projectType": "application","schematics": {
        "@schematics/angular:component": {
          "style": "scss"
        }
      },"root": "","sourceRoot": "src","prefix": "app","architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser","options": {
            "outputPath": "../public","index": "src/index.html","main": "src/main.ts","polyfills": "src/polyfills.ts","tsConfig": "tsconfig.app.json","aot": false,"assets": [
              "src/favicon.ico","src/assets"
            ],"styles": [
              "node_modules/devextreme/dist/css/dx.common.css","node_modules/devextreme/dist/css/dx.light.css","node_modules/bootstrap/dist/css/bootstrap.min.css","node_modules/font-awesome/css/font-awesome.css","src/styles.scss"
            ],"scripts": [
              "node_modules/jquery/dist/jquery.min.js","node_modules/bootstrap/dist/js/bootstrap.min.js"
            ]
          },"configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts","with": "src/environments/environment.prod.ts"
                }
              ],"optimization": true,"outputhashing": "all","sourceMap": false,"extractCss": true,"namedChunks": false,"aot": true,"extractLicenses": true,"vendorChunk": false,"buildOptimizer": true,"budgets": [
                {
                  "type": "initial","maximumWarning": "10mb","maximumError": "15mb"
                },{
                  "type": "anyComponentStyle","maximumWarning": "6kb","maximumError": "10kb"
                }
              ]
            }
          }
        },"serve": {
          "builder": "@angular-devkit/build-angular:dev-server","options": {
            "browserTarget": "configuratore:build"
          },"configurations": {
            "production": {
              "browserTarget": "configuratore:build:production"
            }
          }
        },"extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n","options": {
            "browserTarget": "configuratore:build"
          }
        },"test": {
          "builder": "@angular-devkit/build-angular:karma","options": {
            "main": "src/test.ts","tsConfig": "tsconfig.spec.json","karmaConfig": "karma.conf.js","styles": [
              "src/styles.scss"
            ],"scripts": []
          }
        },"lint": {
          "builder": "@angular-devkit/build-angular:tslint","options": {
            "tsConfig": [
              "tsconfig.app.json","tsconfig.spec.json","e2e/tsconfig.json"
            ],"exclude": [
              "**/node_modules/**"
            ]
          }
        },"e2e": {
          "builder": "@angular-devkit/build-angular:protractor","options": {
            "protractorConfig": "e2e/protractor.conf.js","devserverTarget": "configuratore:serve"
          },"configurations": {
            "production": {
              "devserverTarget": "configuratore:serve:production"
            }
          }
        }
      }
    },"foo": {
      "projectType": "library","root": "projects/foo","sourceRoot": "projects/foo/src","prefix": "lib","architect": {
        "build": {
          "builder": "@angular-devkit/build-ng-packagr:build","options": {
            "tsConfig": "projects/foo/tsconfig.lib.json","project": "projects/foo/ng-package.json"
          }
        },"options": {
            "main": "projects/foo/src/test.ts","tsConfig": "projects/foo/tsconfig.spec.json","karmaConfig": "projects/foo/karma.conf.js"
          }
        },"options": {
            "tsConfig": [
              "projects/foo/tsconfig.lib.json","projects/foo/tsconfig.spec.json"
            ],"exclude": [
              "**/node_modules/**"
            ]
          }
        }
      }
    }},"defaultProject": "configuratore"
}

它还这样更新了tsconfig.json

{
  "compileonSave": false,"compilerOptions": {
    "baseUrl": "./","outDir": "./dist/out-tsc","sourceMap": true,"declaration": false,"downlevelIteration": true,"experimentalDecorators": true,"module": "esnext","moduleResolution": "node","importHelpers": true,"target": "es2015","typeRoots": [
      "node_modules/@types","src/typings.d.ts"
    ],"lib": [
      "es2018","dom"
    ],"paths": {
      "jszip": [
        "node_modules/jszip/dist/jszip.min.js"
      ],"foo": [
        "dist/foo"
      ],"foo/*": [
        "dist/foo/*"
      ]
    }
  },"angularCompilerOptions": {
    "fullTemplateTypeCheck": true,"strictInjectionParameters": true
  }
}

我的问题是,如果我ctrl + .位于lib中的服务提示我是'dist / foo / service.ts'而不是'foo',那么我必须在构建过程中手动更改它过程会破裂。

如果对答案有帮助,我的项目结构是:

- root
    *   dist
    *   projects
            +   foo
    *   src
            +   app
            +   assets
            +   environments
    *   angular.json
    *   tsconfig.json

此配置是否有问题?

sunqianpeng 回答:角度项目自动导入对于自定义库是错误的

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2753244.html

大家都在问