In my Angular 2 project, I am using Typescript with SystemJS for module loading and Gulp as a task runner. Currently, the project is running on Angular RC2 but the same issue persists with RC1. I followed the steps provided in brando's answer here.
Upon bundling my application and loading the website for the first time, SystemJS throws this error:
Error: http://localhost:57462/app/app.bundle.js detected as register but didn't execute.
The application functions properly but having the error in the console is not ideal.
I tested the configuration on an empty project and encountered the same problem, indicating that the issue lies within the configuration itself.
Here is the Gulpfile:
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var typescript = require('gulp-typescript');
var jspm = require('gulp-jspm-build');
gulp.task('compile:ts', function () {
return gulp.src(['./appTS/**/*.ts'])
.pipe(sourcemaps.init())
.pipe(typescript({
noEmitOnError: true,
target: 'ES5',
removeComments: false,
experimentalDecorators: true,
emitDecoratorMetadata: true,
module: 'system',
moduleResolution: 'node'
}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./app/'));
});
gulp.task('copy:vendor', function () {
return gulp.src([
'node_modules/systemjs/dist/system-polyfills.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/core-js/client/shim.min.js',
'node_modules/zone.js/dist/zone.min.js',
'node_modules/systemjs/dist/system.js',
'node_modules/rxjs/bundles/Rx.js'
]).pipe(gulp.dest('./assets/vendor/'));
});
gulp.task('bundle:app', ['compile:ts'], function () {
return jspm({
bundleOptions: {
minify: true,
mangle: false
},
bundleSfx: true,
bundles: [
{ src: './app/main.js', dst: 'bundle.js' }
]
})
.pipe(gulp.dest('./app/'));
});
gulp.task('bundle', ['bundle:app', 'copy:vendor'], function () {
return gulp.src([
'./assets/vendor/Reflect.js',
'./assets/vendor/shim.min.js',
'./assets/vendor/zone.min.js',
'./app/bundle.js'])
.pipe(concat('app.bundle.js'))
.pipe(gulp.dest('./app/'))
});
gulp.task('default', ['bundle']);
var packages = {
app: {
format: 'register',
defaultExtension: 'js'
},
"symbol-observable": { main: 'index.js', defaultExtension: 'js' },
"reflect-metadata": { main: 'Reflect.js', defaultExtension: 'js' }
};
var ngPackageNames = ['common',
'compiler',
'core',
'http',
'platform-browser',
'platform-browser-dynamic',
'router',
'router-deprecated',
'upgrade'];
ngPackageNames.forEach(function (element, index, array) {
packages['@angular/' + element] = { main: 'bundles/' + element + '.umd.min.js', defaultExtension: 'js' };
});
System.config({
main: 'dispel.bundle.min',
defaultExtension: 'js',
format: 'register',
packages: packages,
baseURL: "/",
defaultJSExtensions: true,
transpiler: false,
paths: {
"node_modules*": "node_modules*",
"@angular*": "node_modules/@angular/*"
},
map: {
"@angular": "node_modules/@angular",
"symbol-observable": "node_modules/symbol-observable",
"ng2-translate": "node_modules/ng2-translate",
"es6-shim": "node_modules/es6-shim",
"reflect-metadata": "node_modules/reflect-metadata",
"rxjs": "node_modules/rxjs",
"zone.js": "node_modules/zone.js"
}
});