angular ng serve命令引发错误:发生未处理的异常:项目不存在

use*_*795 4 serve angular

我正在尝试使用ng serve来提高本地角度的dev env,一天前工作得很好,但是现在每次我运行ng serve或npm start时都会抛出错误:

“发生未处理的异常:项目不存在。”

我曾尝试在我的另一个项目中运行ng serve,它在那里工作。

不知道是什么原因导致此错误

Rag*_*kat 18

与adam0101 提到的问题类似,通过更改项目名称为我解决了该问题。事实上 package.json 和 angular.json 名称可以不同(至少对我而言),但在 angular.json 中,命名是一致的

老的

  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "e-admin": {   ======NAME USED HERE=======
      "root": "",
...
"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "eAdmin:build"    ===NAME USED HERE====
          },
          "configurations": {
            "production": {
              "browserTarget": "eAdmin:build:production"  <===NAME USED HERE
            }
          }
        },
Run Code Online (Sandbox Code Playgroud)

修改的

 "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "e-admin": {
      "root": "",
...
"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "e-admin:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "e-admin:build:production"
            }
          }
        },
Run Code Online (Sandbox Code Playgroud)


ada*_*101 10

确保项目名称angular.json与您的package.json脚本部分中所调用的名称相匹配。

这就是我发现问题的方式。我收到以下错误:

An unhandled exception occurred: Project does not exist.
See "C:\Users\Adam\AppData\Local\Temp\ng-XcQsPs\angular-errors.log" for further details.
Run Code Online (Sandbox Code Playgroud)

当我转到该日志文件时,看到了以下内容:

[error] Error: Project does not exist.
    at WorkspaceNodeModulesArchitectHost.findProjectTarget (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular-devkit\architect\node\node-modules-architect-host.js:94:23)
    at WorkspaceNodeModulesArchitectHost.getBuilderNameForTarget (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular-devkit\architect\node\node-modules-architect-host.js:13:39)
    at RunCommand.runSingleTarget (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular\cli\models\architect-command.js:175:55)
    at RunCommand.runArchitectTarget (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular\cli\models\architect-command.js:218:35)
    at RunCommand.run (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular\cli\commands\run-impl.js:14:25)
    at RunCommand.validateAndRun (C:\Users\Adam\source\repos\TechScore.Express\node_modules\@angular\cli\models\command.js:134:39)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Run Code Online (Sandbox Code Playgroud)

因此,我打开node-modules-architect-host.js:94:23并看到了以下内容:

const projectDefinition = this._workspace.projects.get(target.project);
if (!projectDefinition) {
    throw new Error('Project does not exist.');
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么他们会在不告诉您哪个项目不存在的情况下抛出这样的错误。所以我将文件更改为这样:

throw new Error('Project does not exist. ' + target.project);
Run Code Online (Sandbox Code Playgroud)

现在,当我构建时,我会收到如下错误:

An unhandled exception occurred: Project does not exist. client-app
Run Code Online (Sandbox Code Playgroud)

终于,我看到了罪魁祸首!对“ client-app”进行了全局搜索,结果显示我正在使用package.json,但我的项目angular.json是“ ClientApp”。将“ ClientApp”的所有引用更改为“ client-app”对我来说解决了这个问题。

  • 应该添加这个小片段“('项目不存在。'+ target.project);”,这样可以节省很多时间。 (3认同)

Ton*_*Ngo 6

确保你的 angular.json 有这个配置

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "version": 1,
    "newProjectRoot": "projects",
    "projects": { // here 
        "testapp": {
            "root": "",
            "sourceRoot": "src",
            "projectType": "application",
Run Code Online (Sandbox Code Playgroud)


小智 6

我匹配 angular.json 和 package.json 中的值,我的问题得到了解决

角度.json:

"projects": {
    "step1": {
      "projectType": "application",
      ...,
      ...,
Run Code Online (Sandbox Code Playgroud)

包.json

{
  "name": "step1",
  ...,
  ...,
Run Code Online (Sandbox Code Playgroud)


Pau*_*yan 6

请检查项目名称和 defaultProject 是否相同

测试应用

{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": { // here 
    "testapp": {
        "root": "",
        "sourceRoot": "src",
        "projectType": "application",
Run Code Online (Sandbox Code Playgroud)

………………

"defaultProject": "testapp",
Run Code Online (Sandbox Code Playgroud)

请尝试

npm install 
Run Code Online (Sandbox Code Playgroud)

或者

yarn install
Run Code Online (Sandbox Code Playgroud)


小智 5

我解决了这个问题,将 tsconfig.json 中的目标从 es2015 更改为 es5