Could you please share how did you achieve routing between angular 1 and 2 ?
On Sunday, October 9, 2016 at 9:12:22 PM UTC-7, Matt Zalen wrote:
>
> I'm trying to upgrade a giant client-side app from Angular 1.x to Angular
> 2, and I've hit a really annoying roadblock. I've recreated the issue with
> a dummy, light-weight project (files pasted below), but let me just explain
> the problem first.
>
> Basically, when my `tsconfig.json` specifies module as `commonjs`, I get
> the following error in my chrome dev console:
>
> >app.module.ts:1Uncaught ReferenceError: require is not defined
>
>
> When I switch the module to `system`, I get the following error:
>
>
>> >Uncaught TypeError: Invalid System.register call. Anonymous
>> System.register calls can only be made by modules loaded by SystemJS.import
>> and not via script tags.
>
>
> And when I switch module to `umd`, everything works fine. But given that
> angular themselves suggest using `commonjs`, I'm concerned that `umd` is
> not the right answer. If I'm wrong about that, I'd love for somebody to
> explain why.
>
> I've read a number of blogs about module loading and the differences
> between umd and amd and commonjs and node, but I have to admit, I'm still
> pretty confused. So if somebody could also point me to a great, clear
> explanation about that, as well, I'd really appreciate it. In the
> meantime, here's my code.
>
> tsconfig.json:
>
>
> {
> "compilerOptions": {
> "target": "es5",
> "module": "system",
> "moduleResolution": "node",
> "sourceMap": true,
> "emitDecoratorMetadata": true,
> "experimentalDecorators": true,
> "removeComments": false,
> "noImplicitAny": false
> }
> ,
> "exclude": [
> "node_modules"
> ]
> }
>
>
> typings.json:
>
>
> {
> "globalDependencies": {
> "angular": "registry:dt/angular#1.5.0+20160922195358",
> "core-js": "registry:dt/core-js#0.0.0+20160725163759",
> "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
> "jquery": "registry:dt/jquery#1.10.0+20160929162922",
> "node": "registry:dt/node#6.0.0+20160909174046"
> }
> }
>
>
> systemjs.config.js :
>
>
> (function (global) {
> System.config({
> paths: {
> // paths serve as alias
> 'npm:': 'node_modules/'
> },
> // map tells the System loader where to look for things
> map: {
> // our app is within the app folder
> app: 'app',
> // angular bundles
> '@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-dynamic':
> 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js'
> ,
> '@angular/ ': 'npm:@angular/http/bundles/http.umd.js',
> '@angular/router': 'npm:@angular/router/bundles/router.umd.js'
> ,
> '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
> // other libraries
> 'rxjs': 'npm:rxjs',
> 'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
> },
> // packages tells the System loader how to load when no filename
> and/or no extension
> packages: {
> app: {
> main: './main.js',
> defaultExtension: 'js'
> },
> rxjs: {
> defaultExtension: 'js'
> },
> 'angular-in-memory-web-api': {
> main: './index.js',
> defaultExtension: 'js'
> }
> }
> });
> })(this);
>
>
>
>
> package.json :
>
>
> {
> "name": "mattsApp",
> "version": "0.0.1",
> "dependencies": {
> "angular": "^1.5.8",
> "@angular/common": "~2.0.2",
> "@angular/compiler": "~2.0.2",
> "@angular/core": "~2.0.2",
> "@angular/forms": "~2.0.2",
> "@angular/http": "~2.0.2",
> "@angular/platform-browser": "~2.0.2",
> "@angular/platform-browser-dynamic": "~2.0.2",
> "@angular/router": "~3.0.2",
> "@angular/upgrade": "~2.0.2",
> "angular-in-memory-web-api": "~0.1.5",
> "bootstrap": "^3.3.7",
> "core-js": "^2.4.1",
> "reflect-metadata": "^0.1.8",
> "rxjs": "5.0.0-beta.12",
> "systemjs": "0.19.39",
> "zone.js": "^0.6.25"
> },
> "devDependencies": {
> "concurrently": "^3.0.0",
> "lite-server": "^2.2.2",
> "typescript": "^2.0.3",
> "typings":"^1.4.0"
> },
> "scripts": {
> "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
> "lite": "lite-server",
> "postinstall": "typings install",
> "tsc": "tsc",
> "tsc:w": "tsc -w",
> "typings": "typings"
> }
> }
>
>
> app.js :
>
>
> angular.module('app', []);
>
>
> app.module.ts :
>
>
> import { NgModule } from '@angular/core';
> import { BrowserModule } from '@angular/platform-browser';
> import { upgradeAdapter } from './upgrade_adapter';
>
>
> @NgModule({
> imports: [ BrowserModule ]
> })
> export class AppModule { }
>
>
> upgradeAdapter.bootstrap(document.body, ['app'], {strictDi: true});
>
>
> appCtrl.ts :
>
> angular.module('app')
> .controller('appCtrl', ['$scope', function($scope) {
> $scope.hello = "howdy worldy";
> }]);
>
>
>
> upgrade_adapter.ts :
>
>
> import { UpgradeAdapter } from '@angular/upgrade';
> import {AppModule} from "./app.module";
> export const upgradeAdapter = new UpgradeAdapter(AppModule);
>
>
>
> What am I missing?
>
--
You received this message because you are subscribed to the Google Groups
"Angular" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.