问题描述
我正在开发具有SSR的Angular应用,但是在使用npm run build:ssr
进行构建时遇到以下错误:
ERROR in [...]/tsconfig.json
[tsl] ERROR
TS6306: Referenced project '[...]/tsconfig.app.json' must have setting "composite": true.
ERROR in [...]/tsconfig.json
[tsl] ERROR
TS6306: Referenced project '[...]/tsconfig.server.json' must have setting "composite": true.
然后我尝试将此密钥添加到tsconfig.app.json
和tsconfig.server.json
,但是我不确定在哪里添加此密钥:
tsconfig.app.json(和tsconfig.server.json相应)
{
"extends": "./tsconfig.base.json","compilerOptions": {
"outDir": "./out-tsc/app","types": [],"composite": true // <-- generates the next error (see below)
},"files": [
"src/main.ts","src/polyfills.ts"
],"include": [
"src/**/*.d.ts"
],"exclude": [
"src/test.ts","src/**/*.spec.ts"
],"composite": true // <-- no effect
}
如上所述,在添加密钥之后,在构建时,每个打字稿文件发生以下错误:
ERROR in error TS6304: Composite projects may not disable declaration emit.
(所以这不可能...
一些需要了解的事情:
package.json:
{
"name": "cg","version": "0.0.0","scripts": {
"ng": "ng","start": "ng serve","build": "ng build --prod --localize","test": "ng test","lint": "ng lint","e2e": "ng e2e","xi18n": "ng xi18n --outFile=de.xlf --outputPath=src/i18n","compile:server": "webpack --config webpack.server.config.js --progress --colors","serve:ssr": "node dist/server","build:ssr": "npm run build:client-and-server-bundles && npm run compile:server","build:client-and-server-bundles": "ng build --prod && ng run cg:server:production"
},"private": true,"dependencies": {
"@angular/animations": "~10.0.8","@angular/cdk": "^10.1.3","@angular/common": "~10.0.8","@angular/compiler": "~10.0.8","@angular/core": "~10.0.8","@angular/elements": "^10.0.8","@angular/forms": "~10.0.8","@angular/google-maps": "^9.2.4","@angular/localize": "^10.0.8","@angular/platform-browser": "~10.0.8","@angular/platform-browser-dynamic": "~10.0.8","@angular/platform-server": "^10.0.8","@angular/router": "~10.0.8","@angular/service-worker": "~10.0.8","@ngrx/effects": "^10.0.0","@ngrx/store": "^10.0.0","@nguniversal/builders": "^10.0.2","@nguniversal/express-engine": "^10.0.2","@nguniversal/module-map-ngfactory-loader": "^8.2.6","@types/express": "^4.17.7","@types/lodash": "^4.14.155","document-register-element": "^1.7.2","express": "^4.17.1","http-server": "^0.12.3","lodash.merge": "^4.6.2","lodash.pick": "^4.4.0","rxjs": "~6.6.2","smoothscroll-polyfill": "^0.4.4","tslib": "^2.0.0","zone.js": "~0.10.3"
},"devDependencies": {
"@angular-devkit/build-angular": "^0.1000.5","@angular/cli": "~10.0.5","@angular/compiler-cli": "~10.0.8","@angular/language-service": "~10.0.8","@locl/cli": "0.0.1-beta.9","@types/node": "^14.0.13","fs-extra": "^9.0.1","git-describe": "^4.0.4","ts-loader": "^5.2.0","ts-node": "~8.10.2","tslint": "~6.1.0","typescript": "^3.9.7","webpack-cli": "^3.1.0"
}
}
angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json","version": 1,"newProjectRoot": "projects","projects": {
"cg": {
"i18n": {
"sourceLocale": "de","locales": {
"fr": "src/i18n/fr.xlf"
}
},"projectType": "application","schematics": {
"@schematics/angular:component": {
"inlinestyle": true,"style": "scss","skipTests": true
},"@schematics/angular:class": {
"skipTests": true
},"@schematics/angular:directive": {
"skipTests": true
},"@schematics/angular:guard": {
"skipTests": true
},"@schematics/angular:module": {
"skipTests": true
},"@schematics/angular:pipe": {
"skipTests": true
},"@schematics/angular:service": {
"skipTests": true
}
},"root": "","sourceRoot": "src","prefix": "cg","architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser","options": {
"outputPath": "dist/browser","index": "src/index.html","main": "src/main.ts","polyfills": "src/polyfills.ts","tsConfig": "tsconfig.app.json","localize": [
"de"
],"aot": true,"assets": [
{
"glob": "**/*","input": "src/assets/","output": "/assets/"
},{
"glob": ".htaccess","input": "src/","output": "/../"
},"src/manifest.webmanifest"
],"styles": [
"src/sass/main.scss"
],"scripts": []
},"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts","with": "src/environments/environment.prod.ts"
}
],"optimization": true,"outputHashing": "all","sourceMap": false,"extractCss": true,"namedChunks": false,"extractLicenses": true,"vendorChunk": false,"buildOptimizer": true,"budgets": [
{
"type": "initial","maximumWarning": "2mb","maximumError": "5mb"
},{
"type": "anyComponentStyle","maximumWarning": "6kb","maximumError": "10kb"
}
],"serviceWorker": true,"ngswConfigPath": "ngsw-config.json"
},"fr": {
"localize": [
"fr"
]
},"it": {
"localize": [
"it"
]
},"en": {
"localize": [
"en"
]
}
}
},"serve": {
"builder": "@angular-devkit/build-angular:dev-server","options": {
"browserTarget": "cg:build"
},"configurations": {
"production": {
"browserTarget": "cg:build:production"
},"fr": {
"browserTarget": "cg:build:fr"
},"it": {
"browserTarget": "cg:build:it"
},"en": {
"browserTarget": "cg:build:en"
}
}
},"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n","options": {
"browserTarget": "cg:build"
}
},"server": {
"builder": "@angular-devkit/build-angular:server","options": {
"outputPath": "dist/server","main": "src/main.server.ts","tsConfig": "tsconfig.server.json"
},"with": "src/environments/environment.prod.ts"
}
]
}
}
}
}
}
},"defaultProject": "cg"
}
由于我是SSR的新手,所以我有点迷路了。有人有主意吗?预先感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)