Running Angular and AngularJS frameworks side by side

后端 未结 1 1771
长发绾君心
长发绾君心 2020-11-22 10:38

I have found resources that describe how to integrate Angular (2) components into AngularJS, but all of these have involved setting up the AngularJS project like an Angular

1条回答
  •  渐次进展
    2020-11-22 11:34

    Incrementally upgrade an AngularJS application to Angular.

    One of the keys to a successful upgrade is to do it incrementally, by running the two frameworks side by side in the same application, and porting AngularJS components to Angular one by one. This makes it possible to upgrade even large and complex applications without disrupting other business, because the work can be done collaboratively and spread over a period of time. The upgrade module in Angular has been designed to make incremental upgrading seamless.

    For more information, see Angular 2 Guide - Upgrading from AngularJS to Angular

    The DEMO on PLNKR

    See also,

    • Migrating AngularJS to Angular 4,5 (with DEMO)

    I don't want to run another server with a transpiler.

    The transpiler can be run client-side. It is possible but not recommended.

    
    
    
    
    

    systemjs.config.js

    /**
     * WEB ANGULAR VERSION
     * (based on systemjs.config.js in angular.io)
     * System configuration for Angular samples
     * Adjust as necessary for your application needs.
     */
    (function (global) {
      System.config({
        // DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER
        transpiler: 'ts',
        typescriptOptions: {
          // Copy of compiler options in standard tsconfig.json
          "target": "es5",
          "module": "commonjs",
          "moduleResolution": "node",
          "sourceMap": true,
          "emitDecoratorMetadata": true,
          "experimentalDecorators": true,
          "lib": ["es2015", "dom"],
          "noImplicitAny": true,
          "suppressImplicitAnyIndexErrors": true
        },
        meta: {
          'typescript': {
            "exports": "ts"
          }
        },
        paths: {
          // paths serve as alias
          'npm:': 'https://unpkg.com/'
        },
        // map tells the System loader where to look for things
        map: {
          // our app is within the app folder
          'app': 'app',
    
          // angular bundles
          '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
          '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
          '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
          '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
          '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
          '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
          '@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',
          '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
          '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
          '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
          '@angular/router/upgrade': 'npm:@angular/router/bundles/router-upgrade.umd.js',
          '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
          '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
          '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js',
    
          // other libraries
          'rxjs':                      'npm:rxjs@5.0.1',
          'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
          'ts':                        'npm:plugin-typescript@5.2.7/lib/plugin.js',
          'typescript':                'npm:typescript@2.2.1/lib/typescript.js',
    
        },
        // packages tells the System loader how to load when no filename and/or no extension
        packages: {
          app: {
            main: './main.ts',
            defaultExtension: 'ts',
            meta: {
              './*.ts': {
                loader: 'systemjs-angular-loader.js'
              }
            }
          },
          rxjs: {
            defaultExtension: 'js'
          }
        }
      });
    
    })(this);
    

    For more information, see Angular 2 TypeScript QuickStart


    Convert Angular TypeScript examples into ES6 and ES5 JavaScript.

    Anything you can do with Angular in TypeScript, you can also do in JavaScript. Translating from one language to the other is mostly a matter of changing the way you organize your code and access Angular APIs.

    For more information, see Angular 2 Developer Cookbook - TypeScript to JavaScript

    0 讨论(0)
提交回复
热议问题