我需要一些帮助来解决一个不会阻塞我的代码的问题,但这确实很烦人。
我开始编写一个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
此配置是否有问题?