angular ng serve command throws error: An unhandled exception occurred: Project does not exist

末鹿安然 提交于 2021-02-18 08:52:12

问题


I am trying to up my local angular dev env using ng serve, it was working perfectly fine a day back, but now every time I run ng serve or npm start it throws an error:

"An unhandled exception occurred: Project does not exist."

I have tried running ng serve in one of my different project, it works there.

not sure what it causing this error


回答1:


Make sure the name of the project in your angular.json matches what is being called from your package.json scripts section.

This is how I discovered the problem. I was getting the following error:

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

When I went to that log file, I saw this:

[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)

So I opened node-modules-architect-host.js:94:23 and saw this:

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

I have no idea why they throw an error like this without telling you which project does not exist. So I changed the file to be like this:

throw new Error('Project does not exist. ' + target.project);

Now, when I build, I get an error like this instead:

An unhandled exception occurred: Project does not exist. client-app

Finally I can see who the culprit is! A global search for "client-app" showed me that it was being used from package.json, but my project in angular.json was "ClientApp". Changing all references of "ClientApp" to "client-app" fixed the problem for me.




回答2:


Similar to issue mentioned by adam0101, the issue got fixed for me by changing the project name. Infact package.json and angular.json names can be different( at least for me), but within angular.json, the naming was consistent

Old

  "$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
            }
          }
        },

Modified

 "$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"
            }
          }
        },



回答3:


Make sure you angular.json have this config

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "version": 1,
    "newProjectRoot": "projects",
    "projects": { // here 
        "testapp": {
            "root": "",
            "sourceRoot": "src",
            "projectType": "application",



回答4:


please check projects name and defaultProject are same

testapp

{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": { // here 
    "testapp": {
        "root": "",
        "sourceRoot": "src",
        "projectType": "application",

.....................

"defaultProject": "testapp",

please try

npm install 

or

yarn install



回答5:


I fixed this issue changing the target in tsconfig.json from es2015 to es5




回答6:


I match the values in angular.json & package.json and my problem was solved

angular.json:

"projects": {
    "step1": {
      "projectType": "application",
      ...,
      ...,

package.json

{
  "name": "step1",
  ...,
  ...,



回答7:


@adam0101 The solution helped a lot! Thank you!!!

But I had to add a console.log(target):

const projectDefinition = this._workspace.projects.get(target.project);
if (!projectDefinition) {
    console.log(target)
    throw new Error('Project does not exist.');
}

And I found in the package.json the wrong project name over a global search:




回答8:


Project name in angular.json must be the same at every property where is needed.

And take good care of letter case, even in paths, at angular.json.

Windows doesn't complain, but Angular does!!




回答9:


For anyone still having this issue. It's likely you didn't run npm install or yarn before calling the run script.




回答10:


I had the same problem with Angular Universal. For me it was the simplest thing. It is npm run dev:ssr not ng run dev:ssr. However, it is ng run myproject:serve-ssr. Watch for differences between ng and npm.




回答11:


For me it only works using

npm run cordova:run android


来源:https://stackoverflow.com/questions/57585781/angular-ng-serve-command-throws-error-an-unhandled-exception-occurred-project

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!