Angular 6 "Workspace needs to be loaded before it is used." 尝试生成新组件时
Angular 6 "Workspace needs to be loaded before it is used." when trying to generate a new Component
当我使用 angular dotnet new 命令创建 asp.net 核心项目时,没有向项目添加 angular.json 文件 (angular 6),因此我们没有能够使用 angular cli。如果我手动添加 angular.json 文件,项目会在下面给出异常!?
Workspace needs to be loaded before it is used. Error: Workspace needs to be loaded before it is used. at Workspace._assertLoaded (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:59:19) at Workspace.getProjectByPath (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:103:14) at Object.getPackageManager (D:\NetAngular\node_modules\@angular\cli\utilities\config.js:97:35) at UpdateCommand.runSchematic (D:\NetAngular\node_modules\@angular\cli\models\schematic-command.js:74:38) at UpdateCommand.<anonymous> (D:\NetAngular\node_modules\@angular\cli\commands\update.js:70:25) at Generator.next (<anonymous>) at D:\NetAngular\node_modules\@angular\cli\commands\update.js:7:71 at new Promise (<anonymous>) at __awaiter (D:\NetAngular\node_modules\@angular\cli\commands\update.js:3:12) at UpdateCommand.run (D:\NetAngular\node_modules\@angular\cli\commands\update.js:69:16)
尤里卡......
dotnet new angular 命令不会在应用程序的根目录上创建 angular.json 文件。在某些网站上,他们说在使用
之后
npm install --save--dev @angular/cli@latest
命令使用
npm update @angular/cli
这会将您的 angular-cli.json 文件迁移到 angular.json 文件!!!但是这里没有 angular-cli.json 文件,也没有 angular.json.
我通过创建自己的 angular.json 文件解决了这个问题(您可以用您的项目名称更改 vega)
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"vega": {
"root": "",
"sourceRoot": "ClientApp",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "ClientApp/dist/vega"
},
"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
}
}
}
}
}
}
}
之后我可以使用 angular cli 命令并创建组件和服务。
Code to be Happy
我遇到了同样的错误,是的 angular.json 造成了问题。
当您手动添加外部 css 路径时,可能会发生此错误。我在引用 bootstrap css.
时漏掉了逗号
在样式数组中添加自定义 CSS 时,我漏掉了逗号 (,)
错误文件:
如果您看到下面的代码
后缺少逗号
“../node_modules/bootstrap/dist/bootstrap.min.css”.
"styles": [
"../node_modules/bootstrap/dist/bootstrap.min.css"
"src/styles.css"
]
解决方法:加逗号
"styles": [
"../node_modules/bootstrap/dist/bootstrap.min.css",
"src/styles.css"
]
已确认您对 angular.json 进行了一些更改。如果您的 angular.json 文件中存在语法问题,则会发生此错误。我会说这是意外行为,应该改为说文件中存在语法问题。
在 buildOptimizer:true
后添加逗号后,它工作正常。
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true //I missed to put comma here...
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
同样的错误。试过卸载,重装,升级,还是报这个错误信息。
删除空的 ~/.angular-config.json 文件后,一切正常。
我确实更改了我的 angular.json 文件,但没有发现任何错误。在仔细检查逗号和我用编码 (UTF-8) 保存的所有内容后,然后格式化文档(右键单击并格式化文档),删除了 10 条冗余行。之后我可以 运行 angular cli 更新,以及命令。
我遇到了类似的错误:
“发生未处理的异常:无法加载工作区配置文件:///Projects///project/angular。 json
架构验证失败,出现以下错误:
数据路径“”不应具有附加属性(脚本)。
有关详细信息,请参阅“/private/var/folders/f8/cq9wj86n3gbfj8h64f8jlx2m0000gn/T/ng-5TCBsc/angular-errors.log”。“
这是因为我之前在 angular.json 中添加了额外的 'scripts' 键。删除它并且它有效!
我有同样的错误,这个错误可能发生在:
- 它可能来自
@angular/cli
版本。
在 angular.json
或 tsconfig.json
.
中的行尾缺少 comma
字符
unicode
angular.json
或 tsconfig.json
文件(将是 UTF-8
)。
- 会在
angular.json
或 tsconfig.json
处存在 comment
行。 (就我而言,tsconfig.json
处有评论行)。
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
//"outDir": "./dist/out-tsc", // comment line caused the error. I removed this line
"outDir": "../content/ManagmentJob",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
...
}
当我使用 angular dotnet new 命令创建 asp.net 核心项目时,没有向项目添加 angular.json 文件 (angular 6),因此我们没有能够使用 angular cli。如果我手动添加 angular.json 文件,项目会在下面给出异常!?
Workspace needs to be loaded before it is used. Error: Workspace needs to be loaded before it is used. at Workspace._assertLoaded (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:59:19) at Workspace.getProjectByPath (D:\NetAngular\node_modules\@angular-devkit\core\src\workspace\workspace.js:103:14) at Object.getPackageManager (D:\NetAngular\node_modules\@angular\cli\utilities\config.js:97:35) at UpdateCommand.runSchematic (D:\NetAngular\node_modules\@angular\cli\models\schematic-command.js:74:38) at UpdateCommand.<anonymous> (D:\NetAngular\node_modules\@angular\cli\commands\update.js:70:25) at Generator.next (<anonymous>) at D:\NetAngular\node_modules\@angular\cli\commands\update.js:7:71 at new Promise (<anonymous>) at __awaiter (D:\NetAngular\node_modules\@angular\cli\commands\update.js:3:12) at UpdateCommand.run (D:\NetAngular\node_modules\@angular\cli\commands\update.js:69:16)
尤里卡......
dotnet new angular 命令不会在应用程序的根目录上创建 angular.json 文件。在某些网站上,他们说在使用
之后npm install --save--dev @angular/cli@latest
命令使用
npm update @angular/cli
这会将您的 angular-cli.json 文件迁移到 angular.json 文件!!!但是这里没有 angular-cli.json 文件,也没有 angular.json.
我通过创建自己的 angular.json 文件解决了这个问题(您可以用您的项目名称更改 vega)
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"vega": {
"root": "",
"sourceRoot": "ClientApp",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "ClientApp/dist/vega"
},
"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
}
}
}
}
}
}
}
之后我可以使用 angular cli 命令并创建组件和服务。
Code to be Happy
我遇到了同样的错误,是的 angular.json 造成了问题。 当您手动添加外部 css 路径时,可能会发生此错误。我在引用 bootstrap css.
时漏掉了逗号在样式数组中添加自定义 CSS 时,我漏掉了逗号 (,)
错误文件:
如果您看到下面的代码
后缺少逗号
“../node_modules/bootstrap/dist/bootstrap.min.css”.
"styles": [
"../node_modules/bootstrap/dist/bootstrap.min.css"
"src/styles.css"
]
解决方法:加逗号
"styles": [
"../node_modules/bootstrap/dist/bootstrap.min.css",
"src/styles.css"
]
已确认您对 angular.json 进行了一些更改。如果您的 angular.json 文件中存在语法问题,则会发生此错误。我会说这是意外行为,应该改为说文件中存在语法问题。
在 buildOptimizer:true
后添加逗号后,它工作正常。
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true //I missed to put comma here...
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
同样的错误。试过卸载,重装,升级,还是报这个错误信息。
删除空的 ~/.angular-config.json 文件后,一切正常。
我确实更改了我的 angular.json 文件,但没有发现任何错误。在仔细检查逗号和我用编码 (UTF-8) 保存的所有内容后,然后格式化文档(右键单击并格式化文档),删除了 10 条冗余行。之后我可以 运行 angular cli 更新,以及命令。
我遇到了类似的错误:
“发生未处理的异常:无法加载工作区配置文件:///Projects///project/angular。 json 架构验证失败,出现以下错误: 数据路径“”不应具有附加属性(脚本)。 有关详细信息,请参阅“/private/var/folders/f8/cq9wj86n3gbfj8h64f8jlx2m0000gn/T/ng-5TCBsc/angular-errors.log”。“
这是因为我之前在 angular.json 中添加了额外的 'scripts' 键。删除它并且它有效!
我有同样的错误,这个错误可能发生在:
- 它可能来自
@angular/cli
版本。 在
angular.json
或tsconfig.json
. 中的行尾缺少 unicode
angular.json
或tsconfig.json
文件(将是UTF-8
)。- 会在
angular.json
或tsconfig.json
处存在comment
行。 (就我而言,tsconfig.json
处有评论行)。
comma
字符
{ "compileOnSave": false, "compilerOptions": { "baseUrl": "./", //"outDir": "./dist/out-tsc", // comment line caused the error. I removed this line "outDir": "../content/ManagmentJob", "sourceMap": true, "declaration": false, "module": "es2015", "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es5", "typeRoots": [ "node_modules/@types" ], ... }