How do I correctly upgrade angular 2 (npm) to the latest version?

前端 未结 11 1299
予麋鹿
予麋鹿 2020-11-28 00:47

Recently I started Angular 2 tutorial at https://angular.io/docs/ts/latest/tutorial/.

and left off with Angular 2 beta 8. Now I resumed the tutorial and latest beta

相关标签:
11条回答
  • 2020-11-28 01:26

    Upgrade to latest Angular 5

    Angular Dep packages: npm install @angular/{animations,common,compiler,core,forms,http,platform-browser,platform-browser-dynamic,router}@latest --save

    Other packages that are installed by the angular cli npm install --save core-js@latest rxjs@latest zone.js@latest

    Angular Dev packages: npm install --save-dev @angular/{compiler-cli,cli,language-service}@latest

    Types Dev packages: npm install --save-dev @types/{jasmine,jasminewd2,node}@latest

    Other packages that are installed as dev dev by the angular cli: npm install --save-dev codelyzer@latest jasmine-core@latest jasmine-spec-reporter@latest karma@latest karma-chrome-launcher@latest karma-cli@latest karma-coverage-istanbul-reporter@latest karma-jasmine@latest karma-jasmine-html-reporter@latest protractor@latest ts-node@latest tslint@latest

    Install the latest supported version used by the Angular cli (don't do @latest): npm install --save-dev typescript@2.4.2

    Rename file angular-cli.json to .angular-cli.json and update the content:

    {
      "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
      "project": {
        "name": "project3-example"
      },
      "apps": [
        {
          "root": "src",
          "outDir": "dist",
          "assets": [
            "assets",
            "favicon.ico"
          ],
          "index": "index.html",
          "main": "main.ts",
          "polyfills": "polyfills.ts",
          "test": "test.ts",
          "tsconfig": "tsconfig.app.json",
          "testTsconfig": "tsconfig.spec.json",
          "prefix": "app",
          "styles": [
            "styles.css"
          ],
          "scripts": [],
          "environmentSource": "environments/environment.ts",
          "environments": {
            "dev": "environments/environment.ts",
            "prod": "environments/environment.prod.ts"
          }
        }
      ],
      "e2e": {
        "protractor": {
          "config": "./protractor.conf.js"
        }
      },
      "lint": [
        {
          "project": "src/tsconfig.app.json",
          "exclude": "**/node_modules/**"
        },
        {
          "project": "src/tsconfig.spec.json",
          "exclude": "**/node_modules/**"
        },
        {
          "project": "e2e/tsconfig.e2e.json",
          "exclude": "**/node_modules/**"
        }
      ],
      "test": {
        "karma": {
          "config": "./karma.conf.js"
        }
      },
      "defaults": {
        "styleExt": "css",
        "component": {}
      }
    }
    
    0 讨论(0)
  • 2020-11-28 01:26

    Official npm page suggest a structured method to update angular version for both global and local scenarios.

    1.First of all, you need to uninstall the current angular from your system.

    npm uninstall -g angular-cli
    npm uninstall --save-dev angular-cli
    npm uninstall -g @angular/cli
    

    2.Clean up the cache

    npm cache clean
    

    EDIT

    As pointed out by @candidj

    npm cache clean is renamed as npm cache verify from npm 5 onwards

    3.Install angular globally

    npm install -g @angular/cli@latest
    

    4.Local project setup if you have one

    rm -rf node_modules
    npm install --save-dev @angular/cli@latest
    npm install
    

    Please check the same down on the link below:

    https://www.npmjs.com/package/@angular/cli#updating-angular-cli

    This will solve the problem.

    0 讨论(0)
  • 2020-11-28 01:28

    The command npm update -D && npm update -S will update all packages inside package.json to their latest version, according to their defined version range. You can read more about it here.

    If you want to update Angular from a version prior to 2.0.0-rc.1, then you'll need to manually edit package.json, as Angular was split into several npm modules. Without this, as angular2 package points to 2.0.0-beta.21, you'll never get to use the latest version of Angular.
    A list with some of the most common modules that you'll need to get started can be found in the quickstart repository.

    Notes:

    • A cool way to stay up to date with your packages' latest version is to use npm outdated which shows you all outdated packages together with their wanted and latest version.

    • The reason why we need to chain two commands, npm update -D and npm update -S is to overcome this bug until it's fixed.

    0 讨论(0)
  • 2020-11-28 01:29

    Just start here:

    https://update.angular.io

    Select the version you're using and it will give you a step by step guide.

    I recommend choosing 'Advanced' to see all steps. Complexity is a relative concept - and I don't know whose stupid idea this feature was, but if you select 'Basic' it won't show you all steps needed and you may miss something important that your otherwise 'Basic' application is using.

    As of version 6 there is a new Angular CLI command ng update which intelligently goes through your dependencies and performs checks to make sure you're updating the right things :-)

    The steps will outline how to use it :-)

    0 讨论(0)
  • 2020-11-28 01:35

    Another nice package which I used for migrating form a beta version of Angular2 to Angular2 2.0.0 final is npm-check-updates

    It shows the latest available version of all packages specified within your package.json. In contrast to npm outdated it is also capable to edit your package.json, enabling you to do a npm upgrade later.

    Install

    sudo npm install -g npm-check-updates

    Usage

    ncufor display

    ncu -u for re-writing your package.json

    0 讨论(0)
  • 2020-11-28 01:36

    UPDATE:
    Starting from CLI v6 you can just run ng update in order to get your dependencies updated automatically to a new version.

    With ng update sometimes you might want to add --force flag. If you do so make sure that the version of typescript you got installed this way is supported by your current angular version, otherwise you might need to downgrade the typescript version.

    Also checkout this guide Updating your Angular projects


    For bash users only

    If you are on are on Mac/Linux or running bash on Windows(that wont work in default Windows CMD) you can run that oneliner:

    npm install @angular/{animations,common,compiler,core,forms,http,platform-browser,platform-browser-dynamic,router,compiler-cli}@4.4.5 --save

    yarn add @angular/{animations,common,compiler,core,forms,http,platform-browser,platform-browser-dynamic,router,compiler-cli}@4.4.5

    Just specify version you wan't e.g @4.4.5 or put @latest to get the latest

    Check your package.json just to make sure you are updating all @angular/* packages that you app is relying on

    • To see exact @angular version in your project run:
      npm ls @angular/compiler or yarn list @angular/compiler
    • To check the latest stable @angular version available on npm run:
      npm show @angular/compiler version
    0 讨论(0)
提交回复
热议问题