当系统没有定义我得到类似的错误: Angular2 + webpack Uncaught ReferenceError: System is not definedAngular2的ReferenceError:使用的WebPack
...或
Angular 2 with webpack - Uncaught ReferenceError: System is not defined
我使用从最新的NPM的package.json设置:
http://angular.io/docs/ts/latest/guide/npm-packages.html
我没有找到任何解决方案 这个问题。我正在使用ASP.NET本地IIS服务器。项目开始于Visual Studio的Commutity 2015年
webpack.common.js
:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var path = require('path');
var ProvidePlugin = require('webpack/lib/ProvidePlugin');
module.exports = {
devtool: 'cheap-module-source-map',
cache: true,
debug: true,
entry: {
'polyfills': './polyfills.ts',
'vendor': './vendor.ts',
'main': './main.ts',
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(true),
new webpack.optimize.CommonsChunkPlugin({
name: ['main', 'vendor', 'polyfills'],
minChunks: Infinity
}),
new ProvidePlugin({
jQuery: 'jquery',
$: 'jquery',
jquery: 'jquery'
})
],
module: {
loaders: [
{ test: /\.ts$/, loaders: ['awesome-typescript-loader', 'angular2-template-loader'] },
{ test: /\.css$/, loaders: ['to-string-loader', 'css-loader'] },
{ test: /\.less$/, loader: 'raw-loader!less-loader' },
{ test: /\.html$/, loader: 'raw-loader' },
{ test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, loader: 'file?name=assets/[name].[hash].[ext]' }
]
},
output: {
publicPath: '/',
filename: '[name].js',
sourceMapFilename: '[name].map',
chunkFilename: '[id].js'
},
htmlLoader: {
minimize: false
},
devServer: {
contentBase: '.',
host: 'localhost',
potr: 44305
},
resolve: {
extensions: ['', '.ts', '.js', '.css', '.less']
},
node: {
global: 1,
crypto: 'empty',
module: 0,
Buffer: 0,
clearImmediate: 0,
setImmediate: 0
}
};
webpack.config.js
:
var webpack = require('webpack');
var path = require('path');
var webpackMerge = require('webpack-merge');
var commonConfig = require('./webpack.common.js');
// Webpack Config
var webpackConfig = {
output: {
filename: '[name].js'
}
};
module.exports = webpackMerge(commonConfig, webpackConfig);
tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"rootDir": ".",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules"
],
"awesomeTypescriptLoaderOptions": {
"useWebpackText": true
},
"compileOnSave": true,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
vendors.ts
:
import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';
import 'rxjs/Rx';
import 'jquery/dist/jquery';
import 'bootstrap/dist/js/bootstrap';
import 'angular2-notifications/components.js';
import 'moment';
import 'eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js';
polyfills.ts
:
import 'core-js/es6';
import 'core-js/es7/reflect';
require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
Chrome console
:
core.umd.js:3468Error: Uncaught (in promise): ReferenceError: System is not defined
at resolvePromise (https://localhost:44305/polyfills.js:7687:32)
at https://localhost:44305/polyfills.js:7664:14
at ZoneDelegate.invoke (https://localhost:44305/polyfills.js:7461:29)
at Object.onInvoke (https://localhost:44305/vendor.js:6786:42)
at ZoneDelegate.invoke (https://localhost:44305/polyfills.js:7460:35)
at Zone.run (https://localhost:44305/polyfills.js:7354:44)
at https://localhost:44305/polyfills.js:7720:58
at ZoneDelegate.invokeTask (https://localhost:44305/polyfills.js:7494:38)
at Object.onInvokeTask (https://localhost:44305/vendor.js:6777:42)
at ZoneDelegate.invokeTask (https://localhost:44305/polyfills.js:7493:43)
没有你的运气如何修复这一项。我有同样的问题? –