Angular CLI错误:serve命令需要在Angular项目中运行,但是找不到项目定义


158

运行终端命令ng server或时ng serve --live-reload=true,出现此问题:

serve命令需要在Angular项目中运行,但是找不到项目定义。


11
检查项目文件夹中是否有node_modules文件夹,如果不执行npm install
KEMBL

我已经有node_modules文件夹。
Gurpreet Singh,

当我尝试运行“ ng build”时遇到相同的错误消息时,我偶然发现了这个问题。对我来说,答案是运行“ npm run build”
cfranklin

我在根目录中,并收到此错误:D。之后ng new project我忘了进入项目目录。
DavutGürbüz

Answers:


228

我也遇到了这个问题,并通过运行以下命令解决了。

ng update @angular/cli --migrate-only --from=<WhateverVersionYouAreCurrentlyOn>

例如

ng update @angular/cli --migrate-only --from=1.7.3

从这里获取参考https://github.com/angular/angular-cli/issues/12215#issuecomment-433593036


30
发生这种情况是因为新的angular-cli依赖于使用angular.json而不是.angular-cli.json作为项目文件,并且您的答案负责此转换
代码名称Jack

7
注:--from=1.7.4表示正在迁移的版本,所以1.7.4应改为你以前使用的角度版本(例如:5.2.106.0.0,等)。
cjn18年

4
ng update @ angular / cli <<这对我来说与一个现有的项目(角度6到7
-Abdullah Adeeb

2
我在1.2.4上,并收到以下错误:The specified command update is invalid. For available options, see ``ng help``.我通过将angular-cli更新为1.7.4,然后按照以下答案解决了该问题。
ILikeFood '19

1
谢谢。当我将角度从4.4.7升级到7时为我工作
Pullat Junaid

70

确保您正在应用程序根文件夹中运行命令。


要访问您的根文件夹,请使用 pm> dir pm> cd clientapp以下命令pm>ng config -g cli.warnings.versionMismatch false
hosam hemaily19年

44

如果您已下载项目,请在该项目中执行

npm安装


我的问题是尚未安装的私人npm软件包
David

我在尝试角度教程的测试项目时遇到了同样的问题
mahlatse

19

最后,下面的命令为我解决了这个问题!

ng update --all --force

我试过ng update @angular/cli不起作用,但ng update --all --force按预期工作会有什么区别?
k11k2 '19

15

Angular Cli错误:serve命令需要在Angular项目中运行,但是找不到项目定义

问题是缺少angular.json文件。

    ng update --all --force

经过Angular 7+测试


5

当我尝试更新到最新版本nodenpm软件包时,这在我现有的项目中发生了:

  1. 全局卸载: npm uninstall -g angular-cli
  2. 重置缓存:npm cache cleannpm cache verifynpm version大于5)
  3. 安装最新版本: npm install -g @angular/cli@latest

4

确保在项目中设置了新的角度版本配置。新的角度cli使用angular.json而不是.angular-cli.json进行配置。

遵循迁移指南


4

我很傻,但是需要发表评论,也许我可以省去别人麻烦。如果您执行多任务并有多个项目,则会发生相同的消息,因此某些项目嵌套在项目文件夹中,例如projectFolder/subProject/projectOne我在projectFolder/subProject尝试运行命令时ng serve

确保您位于正确的文件夹中,因为如果您位于错误的文件夹中并且conf和build丢失,将会发生相同的错误!


3

在Package Manager控制台中,运行以下命令

PM> cd NameofApp 

然后您可以尝试在此处运行命令。例如

PM > ng generate component Home

3

重新安装新的应用程序比更新或编辑由于缺少配置而无法被npm识别的某些配置更好,或者我们不确定是否出了问题。

我选择@Tinu解决方案是可行的

步骤1)npm install -g @ angular / cli

第2步)ng new my-angular-project

步骤3)cd my-angular-project

步骤4)ng服务-打开

刚刚备份了我们当前的源代码,并将其放回到了要创建的新角度项目中。


2

当您尝试在其他文件夹而不是Angular应用程序的根文件夹上运行Angular命令“ ng s”或“ ng serve”时,会发生这种情况。

另外,使用以下命令升级Angular:

ng update @angular/cli --migrate-only --from=1.7.4

这样可以解决问题。




2

我遇到了相同的问题,但我通过遵循以下代码步骤解决了。

Step 1) npm install -g @angular/cli
Step 2) ng new my-angular-project
Step 3) cd my-angular-project
Step 4) ng serve --open

为什么我们必须创建一个新项目?我希望对现有的服务器做到这一点
Dadhich Sourav,

为什么要创建一个新项目?如果有人在现有项目中遇到问题
Lint

2

当您正在运行的项目不是角度项目时,会发生此错误。尽管您已经下载了一个角度项目,但没有安装所有依赖项,所以ng serve命令对您不可用。

只需导航到项目存储的路径并使用命令

npm install

(注意-运行该命令之前,应在系统中安装Node.js,如果使用的是Angular 2或更高版本,则还应在系统中安装angular cli。要检查node.js是否已在系统1中安装)打开cmd(任何路径-节点都应在您的系统中全局安装)2)使用命令

node -v
npm -v

获取节点和npm版本)

还有一件重要的事情:如果您系统中安装的cli版本高于项目所需的版本,则cli cli版本不会有任何不同。它会发出警告,但您可以忽略该警告。


2

当我们在错误的目录中时,可能会发生此错误。因此,请使用cd命令更改目录。从上面的注释中不是很明显哪个命令给出了此错误,因此此答案是基于您在根文件夹/实际项目文件夹之外运行ng serve的假设。这就是为什么会出错的原因,因为cli命令需要conf&build文件才能运行cli build。

These should be the steps:
npm install -g @angular/cli  //corrected from 'angular-cli'
ng new projectname
cd projectname
ng serve
open http://localhost:4200

2

转到您的应用程序文件夹,然后再次运行generate命令:

在此处输入图片说明


1

我遇到了同样的错误。原因是新的角度cli更新使angular-cli.json变得多余,而被angular.json代替。我以前的Angular Cli版本是1.7.4,因此要进行更改,我运行了以下命令,它将为您进行转换:

ng update @angular/cli --migrate-only --from=1.7.4

未知选项:“-target” npm ERR!代码ELIFECYCLE
Sohail,

1

当我遇到同样的问题时,

我已经使用旧的angular-cli版本(1.4.7)创建了新的angular项目,然后使用以下命令更新了angular-cli(请勿在更新CLI之前进行操作

  • npm uninstall -g @angular/cli
  • npm cache clean --force
  • npm install -g @angular/cli@latest

现在,当我尝试时ng serve,我遇到了像您一样的错误

Angular Cli Error: The serve command requires to be run in an Angular project, but a project definition could not be found

做以下更新CLI

ng update @angular/cli --migrate-only --from=1.4.7

1

正如乌斯曼说的那样,我第一次遇到很多麻烦,我在听教程。我没有将目录设置为项目目录,因此出现此错误。

我解决了这个问题

  1. 将正确的根目录设置为我的项目所在的目录 cd myproject
  2. 编译应用- ng serve

就是这样


1

尝试了以上所有方法,但对我而言,

npm start


这应该在评论部分
Pardeep '19

@Pardeep我已经尝试了以上所有答案,但是npm start对我有用。因此它将对其他开发人员有所帮助。如果是作为引人注目的答案而不是保留在评论中
viveksuggu

1

我正在使用ionciv1,在文件中ionic.config.json删除角度类型键,它可以正常工作

例:

  {
  "name": "nombre",
  "integrations": {
    "cordova": {}
  },
  "type": "angular", // delete
  "gulpStartupTasks": [
    "sass",
    "templatecache",
    "ng_annotate",
    "useref",
    "watch"
  ],
  "watchPatterns": [
    "www/**/*",
    "!www/lib/**/*"
  ],
  "browsers": [
    {
      "platform": "android",
      "browser": "crosswalk",
      "version": "12.41.296.5"
    }
  ],
  "id": "0.1"
}

解决了

     {
      "name": "nombre",
      "integrations": {
        "cordova": {}
      },
      "gulpStartupTasks": [
        "sass",
        "templatecache",
        "ng_annotate",
        "useref",
        "watch"
      ],
      "watchPatterns": [
        "www/**/*",
        "!www/lib/**/*"
      ],
      "browsers": [
        {
          "platform": "android",
          "browser": "crosswalk",
          "version": "12.41.296.5"
        }
      ],
      "id": "0.1"
    }

1

通常可以将此错误追溯到对我们的全局或本地CLI运行时的更新。要检查这是否是问题,我们需要查看package.json文件。在那里,我们应该寻找@ angular / cli依赖项。这应该指示用于创建我们的项目的CLI版本。让我们记下这个值,因为以后需要使用它来迁移我们的项目。

现在,我们应该通过在终端窗口中输入以下命令来与当前的CLI运行时进行比较。

ng v

ng v的输出

如果出现错误An unhandled exception occurred: ENOENT: no such file or directory, scandir '~/your-app/node_modules',则忘记运行npm install

控制台应显示当前的CLI版本。如果版本不同,则需要通过运行以下命令将项目迁移到新的CLI版本。请注意,from version参数应设置为@ angular / cli设置中找到的值。

ng update @angular/cli --migrate-only --from=1.6.7

现在,我们应该看一下我们的项目,并且应该注意到package.json文件中CLI依赖版本的更改。同样取决于您的CLI版本,该.angular-cli.json文件将被删除,并angular.json创建一个新文件。这是新的CLI正在寻找的项目文件,因此没有找到任何项目的错误原因。通过添加此文件,我们应该能够重新运行项目。

我们应该能够输入以下命令,并且项目应该可以正常加载。

ng server

感谢ozkary


1

确保使用以下命令创建了angular App,然后在创建的Project文件夹中运行ng serve。

ng new Project_Name

0

还请确保如果您正在运行服务,请先将其停止...


0

解决了。我在ubuntu 18.04.01 LTS上遇到了同样的问题。在使用NVM(节点版本管理器)时,没有上述选项起作用解决方案是
在创建项目之前,使用命令
nvm use 10
(我的节点版本为10.15.0,所以我使用了“ nvm use 10”)
,它将显示输出-
现在使用节点v10.15.0(npm v6.4.1)的
版本会因各个系统而异。然后创建新项目。


0

您可以使用命令“ ng update --all”来更新角度。这将花费一些时间,但要确保所有组件都是最新的。


0

请检查您是否是你的项目文件夹内或不和试命令ng serve再次

由于ng serve在项目外部尝试了命令,因此出现了相同的错误

示例::假设您有一个名为“电子商务”的项目遍历该文件夹,然后尝试使用命令 ng serve open terminal cd Ecommerce ng serve


0

这解决了我的问题:

ng generate component nameComponent --module app.module

0

发生这种情况是因为我们在其他路径中单击了ng serve命令。这可以通过在我们项目所在的路径上单击ng serve或npm start命令来解决(采用路径直到包含src,node_modules等的文件夹)

F:\ project \ AngularDemo \ AngularDemoapp> ng服务

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.