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

Posted

技术标签:

【中文标题】Angular CLI 错误:serve 命令需要在 Angular 项目中运行,但找不到项目定义【英文标题】:Angular CLI Error: The serve command requires to be run in an Angular project, but a project definition could not be found 【发布时间】:2019-04-05 10:11:27 【问题描述】:

运行终端命令ng serverng serve --live-reload=true 时,我遇到了这个问题:

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

【问题讨论】:

检查项目文件夹中是否有文件夹node_modules,如果没有则执行npm install 我已经有 node_modules 文件夹了。 我在尝试运行“ng build”时遇到相同的错误消息时偶然发现了这个问题。我的答案是运行“npm run build” 我在根目录中,并收到此错误:D。 ng new project之后忘记进入项目目录了。 我遇到了和@DavutGürbüz一样的问题,我在根目录下,创建angular项目后忘记进入项目文件夹。 【参考方案1】:

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

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

例如

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

从here获取参考

【讨论】:

发生这种情况是因为新的 angular-cli 依赖使用 angular.json 而不是 .angular-cli.json 作为项目文件,而您的答案会处理此转换 注意:--from=1.7.4 表示要从中迁移的版本,因此应将1.7.4 更改为您以前使用的角度版本(例如:5.2.106.0.0 等) . ng update @angular/cli 我在 1.2.4 上遇到了以下错误:The specified command update is invalid. For available options, see ``ng help``. 我通过将 angular-cli 更新到 1.7.4 然后按照这个答案解决了这个问题。 谢谢。当我将 Angular 从 4.4.7 升级到 7 时为我工作【参考方案2】:

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

【讨论】:

访问你的根文件夹使用pm&gt; dirpm&gt; cd clientapp然后如果你有错误信息使用下面的pm&gt;ng config -g cli.warnings.versionMismatch false 最简单的答案往往是正确的,干杯兄弟。【参考方案3】:

如果你已经下载了一个项目,请在项目中做

npm 安装

【讨论】:

我的问题是未安装的私有 npm 包 我在尝试角度教程的测试项目时遇到了同样的问题【参考方案4】:

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

ng update --all --force

【讨论】:

我试过 ng update @angular/cli 没用,但 ng update --all --force 按预期工作 有什么区别?【参考方案5】:

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

问题是缺少 angular.json 文件。

    ng update --all --force

在 Angular 7+ 中测试

【讨论】:

【参考方案6】:

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

确保您在正确的文件夹中,因为如果您在错误的文件夹中并且缺少 conf 和 build,也会发生同样的错误!

【讨论】:

【参考方案7】:

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

    全局卸载:npm uninstall -g angular-cli 重置缓存:npm cache cleannpm cache verify(对于 npm version > 5) 最新安装:npm install -g @angular/cli@latest

【讨论】:

【参考方案8】:

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

关注migration guide。

【讨论】:

【参考方案9】:

在您的包管理器控制台中运行命令

PM> cd NameofApp 

然后你可以尝试在那里运行命令。例如

PM > ng generate component Home

【讨论】:

【参考方案10】:

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

还可以使用以下命令升级 Angular:

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

这将解决它。

【讨论】:

【参考方案11】:

当我们在错误的目录中时可能会发生此错误。所以使用 cd 命令更改您的目录。 从上面的评论中可以看出哪个特定命令给出的不是很明显 此错误,因此此答案基于您正在运行 ng serve 的假设 在根文件夹/实际项目文件夹之外。这就是为什么它给出错误,因为 cli 命令需要 conf 和构建文件才能运行 cli 构建。

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

【讨论】:

【参考方案12】:

重新安装应用程序比更新或编辑一些由于缺少配置或我们不确定是什么问题而无法被 npm 识别的配置要好得多。

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

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

步骤 2) ng new my-angular-project

步骤 3) cd my-angular-project

步骤 4) ng serve --open

刚刚对我们当前的源代码进行了备份,并将其放回创建的新 Angular 项目中。

【讨论】:

【参考方案13】:

切换到您的应用文件夹,然后再次运行生成命令:

【讨论】:

【参考方案14】:

我在使用 Angular7 时遇到了同样的问题,因为我们需要在运行您的应用程序之前进入根文件夹。转到应用程序的根文件夹并运行命令。它非常适合我。

【讨论】:

【参考方案15】:

我遇到了同样的问题,但我按照这些代码步骤解决了。

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

【讨论】:

为什么我们必须创建一个新项目?我希望对现有的这样做 为什么要创建一个新项目?如果有人在现有项目中遇到问题【参考方案16】:

当您运行的项目不是 Angular 项目时会发生此错误。 尽管您已经下载了一个 Angular 项目,但尚未安装所有依赖项,这就是您无法使用 ng serve 命令的原因。

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

npm install

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

node -v
npm -v

获取node和npm版本)

还有一点很重要: 如果您系统中安装的版本高于项目所需的版本,则 Angular cli 版本不会产生影响。 它会发出警告,但您可以忽略警告。

【讨论】:

哈哈,我的情况就是这样,npm install 对我有用,是依赖引起了噪音【参考方案17】:

以上方法都试过了,但对我来说解决了

npm start

【讨论】:

这应该在评论区 @Pardeep 我已经尝试了上述所有答案,但 npm start 对我有用。所以这对其他开发人员会有帮助。如果它是作为引人注目的答案而不是保留在 cmets 中【参考方案18】:

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

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

ng v

如果您收到错误An unhandled exception occurred: ENOENT: no such file or directory, scandir '~/your-app/node_modules',那么您忘记了 运行npm install

控制台应显示当前 CLI 版本。如果版本不同,我们需要通过运行以下命令将项目迁移到新的 CLI 版本。请注意,from 版本参数应设置为 @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

【讨论】:

解释得很好【参考方案19】:

确保您已使用以下命令创建了 Angular App,然后在创建的项目文件夹中运行 ng serve。

ng new Project_Name

【讨论】:

【参考方案20】:

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

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

【讨论】:

未知选项:'--target' npm ERR!代码生命周期【参考方案21】:

我遇到了同样的问题,

我使用旧的 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

【讨论】:

【参考方案22】:

在我的情况下,我忘了更改我的目录,所以在运行命令后:

新建 AngularProject

执行另一个命令:

cd AngularProject

ng serve 为我工作。

【讨论】:

【参考方案23】:

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

我解决了这个问题

    将正确的根目录设置为我的项目所在的位置cd myproject 编译应用程序 - ng serve

就是这样。

【讨论】:

【参考方案24】:

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

F:\project\AngularDemo\AngularDemoapp> 服务

【讨论】:

【参考方案25】:

我建议确认您是否在项目目录中。

【讨论】:

【参考方案26】:

我正在使用ionciv1,在文件ionic.config.json中删除了angular type键,它工作正常

示例:

  
  "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"
    

【讨论】:

【参考方案27】:

本项目不使用angular cli,直接使用webpack。开始运行命令

npm 开始

【讨论】:

【参考方案28】:

我碰巧尝试在使用 Ruby on Rails 创建的项目中执行 ng serve 命令。换句话说,我必须为 Ruby on Rails 运行 rails -s 命令。 我很困惑,因为 Angular 是内置在 Ruby on Rails 中的,所以我必须运行 rails -s 命令来启动我的项目的本地服务器,它可以正常工作。

【讨论】:

【参考方案29】:

还要确保如果您正在运行 ng serve,请先将其停止...

【讨论】:

【参考方案30】:

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

【讨论】:

以上是关于Angular CLI 错误:serve 命令需要在 Angular 项目中运行,但找不到项目定义的主要内容,如果未能解决你的问题,请参考以下文章

当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”

使用ng serve 在Vs Code里调试 anguar 项目

ng serve 不会编译

运行 ng serve 时找不到模块“@angular/compiler-cli/ngc”

ng serve 和 ng build 的 cli config 中的不同资产 [Angular 5]

Angular CLI - ng serve - 来自节点进程的高 CPU 使用率