简体   繁体   English

Angular 12 通用配置“开发”未在工作区中设置

[英]Angular 12 Universal Configuration 'development' is not set in the workspace

I created new project - client - on Angular 11. Then updated ng version to 12 Angular.我在 Angular 11 上创建了新项目 - 客户端。然后将 ng 版本更新为 12 Angular。 Then installed Universal: ng add @nguniversal/express-engine然后安装通用:ng add @nguniversal/express-engine

Then I'm trying to run my Universal Angular, but it throws error:然后我尝试运行我的 Universal Angular,但它会抛出错误:

npm run dev:ssr npm 运行开发:ssr

client@0.0.0 dev:ssr ng run client:serve-ssr client@0.0.0 dev:ssr ng 运行客户端:serve-ssr


This is a simple server for use in testing or debugging Angular applications locally.这是一个简单的服务器,用于在本地测试或调试 Angular 应用程序。 It hasn't been reviewed for security issues.尚未对其安全问题进行审查。

DON'T USE IT FOR PRODUCTION!不要将其用于生产!


Configuration 'development' is not set in the workspace.未在工作区中设置配置“开发”。 npm ERR: code 1 npm ERR: path E.\PRACTICE\MYPETPROJECTS\tanechka\client npm ERR: command failed npm ERR! npm ERR: code 1 npm ERR: path E.\PRACTICE\MYPETPROJECTS\tanechka\client npm ERR: command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c ng run client:serve-ssr命令 C:\WINDOWS\system32\cmd.exe /d /s /c ng 运行客户端:serve-ssr

npm ERR: A complete log of this run can be found in: npm ERR. npm ERR:此运行的完整日志可在以下位置找到:npm ERR。 C:\Users\1\AppData\Local\npm-cache_logs\2021-06-08T14_35_07_681Z-debug.log C:\Users\1\AppData\Local\npm-cache_logs\2021-06-08T14_35_07_681Z-debug.log

angular.json angular.json

 { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "client": { "projectType": "application", "schematics": { "@schematics/angular:component": { "style": "scss" } }, "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/client/browser", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "assets": [ "src/favicon.ico", "src/assets" ], "styles": [ "src/styles.scss" ], "scripts": [], "vendorChunk": true, "extractLicenses": false, "buildOptimizer": false, "sourceMap": true, "optimization": false, "namedChunks": true }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" }, { "type": "anyComponentStyle", "maximumWarning": "6kb", "maximumError": "10kb" } ] } }, "defaultConfiguration": "" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "client:build" }, "configurations": { "production": { "browserTarget": "client:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "client:build" } }, "test": { "builder": "@angular-devkit/build-angular:karma", "options": { "main": "src/test.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", "assets": [ "src/favicon.ico", "src/assets" ], "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": "client:serve" }, "configurations": { "production": { "devServerTarget": "client:serve:production" } } }, "server": { "builder": "@angular-devkit/build-angular:server", "options": { "outputPath": "dist/client/server", "main": "server.ts", "tsConfig": "tsconfig.server.json", "optimization": false, "sourceMap": true, "extractLicenses": false }, "configurations": { "production": { "outputHashing": "media", "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "sourceMap": false, "extractLicenses": true } }, "defaultConfiguration": "production" }, "serve-ssr": { "builder": "@nguniversal/builders:ssr-dev-server", "configurations": { "development": { "browserTarget": "client:build:development", "serverTarget": "client:server:development" }, "production": { "browserTarget": "client:build:production", "serverTarget": "client:server:production" } }, "defaultConfiguration": "development" }, "prerender": { "builder": "@nguniversal/builders:prerender", "options": { "routes": [ "/" ] }, "configurations": { "production": { "browserTarget": "client:build:production", "serverTarget": "client:server:production" }, "development": { "browserTarget": "client:build:development", "serverTarget": "client:server:development" } }, "defaultConfiguration": "production" } } } }, "defaultProject": "client" }

package.json package.json

 { "name": "client", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", "dev:ssr": "ng run client:serve-ssr", "serve:ssr": "node dist/client/server/main.js", "build:ssr": "ng build && ng run client:server", "prerender": "ng run client:prerender" }, "private": true, "dependencies": { "@angular/animations": "~12.0.3", "@angular/common": "~12.0.3", "@angular/compiler": "~12.0.3", "@angular/core": "~12.0.3", "@angular/forms": "~12.0.3", "@angular/platform-browser": "~12.0.3", "@angular/platform-browser-dynamic": "~12.0.3", "@angular/platform-server": "~12.0.3", "@angular/router": "~12.0.3", "@nguniversal/express-engine": "^12.0.1", "express": "^4.15.2", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.11.4" }, "devDependencies": { "@angular-devkit/build-angular": "~12.0.3", "@angular/cli": "~12.0.3", "@angular/compiler-cli": "~12.0.3", "@nguniversal/builders": "^12.0.1", "@types/express": "^4.17.0", "@types/jasmine": "~3.6.0", "@types/node": "^12.11.1", "codelyzer": "^6.0.0", "jasmine-core": "~3.7.1", "jasmine-spec-reporter": "~5.0.0", "karma": "~6.3.3", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.6.0", "protractor": "~7.0.0", "ts-node": "~8.3.0", "tslint": "~6.1.0", "typescript": "~4.2.4" } }

I tried to add 'development' to 'configurations' of serve:我试图将“开发”添加到服务的“配置”中:

 "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "client:build" }, "configurations": { "production": { "browserTarget": "client:build:production" }, "development": { "browserTarget": "client:build:production" } } },

But it didn't work.但它没有用。

I had exactly the same issue, my first go at Universal.我遇到了完全相同的问题,我在 Universal 的第一个 go。

I added a "development" configuration in the follow nodes in the angular.json: -我在angular.json的以下节点中添加了“开发”配置:-

projects->{project-name}->architect->build->configurations
projects->{project-name}->architect->server->configurations

As I normally run with "production" and "staging" configurations I just copied the staging configuration and made a couple of tweaks to stop file replacements and give me an easy platform to debug on while I got used to server side rendering.因为我通常使用“生产”和“暂存”配置运行,所以我只是复制了暂存配置并进行了一些调整以停止文件替换,并在我习惯于服务器端渲染时为我提供一个简单的调试平台。

Nothing helps.没有什么帮助。 So I delete the project with Angular 12 and create a new one with Angular 11 and add Universal, run dev:ssr and it works!所以我用 Angular 12 删除项目,用 Angular 11 创建一个新项目,然后添加 Universal,运行 dev:ssr 就可以了!

I created issue on this topic on GitHub: https://github.com/angular/universal/issues/2158我在 GitHub 上创建了关于此主题的问题: https://github.com/angular/universal/issues/2158

The working decision is: Could you try to delete this line on serve-ssr: "defaultConfiguration": "development" and "configuration.development path. Then add options below builder like this: "options": { "browserTarget": "client:build", "serverTarget": "client:server" },工作决定是:您能否尝试删除 serve-ssr 上的这一行:“defaultConfiguration”:“development”和“configuration.development 路径。然后在构建器下方添加选项,如下所示:“options”:{“browserTarget”:“client :build", "serverTarget": "client:server" },

Angular.json must have such view (with Universal) Angular.json必须有这样的视图(带通用)

 "serve-ssr": { "builder": "@nguniversal/builders:ssr-dev-server", "options": { "browserTarget": "angular12-universal:build", "serverTarget": "angular12-universal:server" }, "configurations": { "production": { "browserTarget": "angular12-universal:build:production", "serverTarget": "angular12-universal:server:production" } } },

Change angular12-universal on name of your project更改项目名称的 angular12-universal

 "serve-ssr": { "builder": "@nguniversal/builders:ssr-dev-server", "options": { "browserTarget": "your-project-name-here:build", "serverTarget": "your-project-name-here:server" }, "configurations": { "production": { "browserTarget": "your-project-name-here:build:production", "serverTarget": "your-project-name-here:server:production" } } },

  1. Note, in version 12, there is also a new experimental way of SSR, To opt-in you can use ng add @nguniversal/common.请注意,在版本 12 中,还有一种新的 SSR 实验方式,要选择加入,您可以使用 ng add @nguniversal/common。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM