【问题标题】:Angular ng serve commandAngular ng 服务命令
【发布时间】:2018-12-17 21:28:04
【问题描述】:

我只是从 angular 5 迁移到 angular 7。之后我无法运行该项目。当我输入 ng serve 我得到这个错误:

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

这是我的package.json

dependencies": {
"@angular/animations": "7.1.3",
"@angular/common": "7.1.3",
"@angular/compiler": "7.1.3",
"@angular/core": "7.1.3",
"@angular/forms": "7.1.3",
"@angular/http": "7.1.3",
"@angular/platform-browser": "7.1.3",
"@angular/platform-browser-dynamic": "7.1.3",
"@angular/router": "7.1.3",
"@ng-idle/core": "^2.0.0-beta.15",
"@ng-idle/keepalive": "^2.0.0-beta.15",
"@ngrx/store": "^5.2.0",
"angular2-chartjs": "^0.5.1",
"angular2-draggable": "^1.4.2",
"angular2-moment": "^1.9.0",
"bootstrap": "^4.0.0-beta.2",
"core-js": "^2.4.1",
"datejs": "^1.0.0-rc3",
"file-saver": "^2.0.0-rc.3",
"font-awesome": "^4.7.0",
"install": "^0.12.2",
"jquery": "^3.3.1",
"jspdf": "^1.4.1",
"ngx-cookie-service": "^1.0.10",
"ngx-treeview": "^6.0.1",
"popper.js": "^1.14.3",
"rxjs": "^6.3.3",
"zone.js": "^0.8.26"
},   
"devDependencies": {
"@angular/cli": "7.1.3",
"@angular/compiler-cli": "7.1.3",
"@angular/language-service": "7.1.3",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/jspdf": "^1.1.31",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "^5.4.1",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "3.1.6"
}

有人有想法吗?

提前致谢

【问题讨论】:

  • 你的项目中有 angular.json 文件吗?
  • 请分享您的目录结构,好像您没有在错误的目录中运行命令。
  • @PardeepJain 是的,我的项目中有 angular-cli.json
  • @bugs 非我在正确的目录中运行它我使用 webstorm

标签: angular


【解决方案1】:

从 5 升级到 7 时,angular 改变了它的 cli 配置格式。

angular-cli.json -> angular.json

但是手动更新不是首选方式。

最好的方法是使用 cli 为您进行更新。 此网页将为您提供帮助:

https://update.angular.io/

但基本上你是全局安装 angular cli

npm i -g @angular/cli

然后运行

ng update @angular/cli
ng update @angular/core

【讨论】:

  • 感谢您的回答,现在很好,但我的 @ngrx/store 和 RxJs 出现问题
【解决方案2】:

如上所述,请使用https://update.angular.io/ 更新指南更新您的应用。

我想在答案中添加一些内容。 由于不正确的更新而发生错误, 您的项目中不会有 angular.json 文件。 我注意到,即使在运行 ng update @angular/cli 命令并按照https://update.angular.io/ 的所有步骤操作后,也会出现此问题,

安装过程中(更新)在终端查看安装是否成功,如果有错误请修复。

删除 package-lock.json 和 node_modules,npm 缓存验证, 也更新全局角度 cli 重新安装 angular/cli,更新 cli

【讨论】:

    【解决方案3】:

    将 angular 5 更新为 angular 7 请按照以下步骤操作:-

    1. 如果不更新,请确保 NodeJS 版本为 8.9+。

      sudo npm install n -g
      sudo n stable
      sudo n latest
      
    2. 全局和本地更新 Angular cli,并通过运行以下命令将旧配置 .angular-cli.json 迁移到新的 angular.json 格式:

      npm install -g @angular/cli
      npm install @angular/cli
      ng更新@angular/cli

    3. 通过运行以下命令将所有 Angular 框架包更新到 v7,以及正确版本的 RxJS 和 TypeScript:

      ng 更新@angular/core

    4. 通过运行以下命令将 Angular Material 更新到最新版本:

      ng 更新@angular/material

    5. Angular 本身没有重大变化,但它们在 RxJS 中,所以不要忘记使用 rxjs-compat 库来处理遗留代码。

      npm install --save rxjs-compat

    更新所有包后,删除 package.lock.json 和 node_module。并运行这些命令:-

    npm install
    

    希望它对你有用。请参阅https://update.angular.io/ 以获得更详细的指南。

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 2013-04-11
      • 2017-11-25
      • 2018-03-19
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      相关资源
      最近更新 更多