错误:升级到Webpack 2时需要'reflect-metadata shim'

时间:2016-08-31 21:12:06

标签: angularjs angular webpack webpack-2

我的团队和我正在尝试将我们的代码库升级到Webpack 2,我们遇到了这两个错误:

'使用类装饰器'时需要使用未反射的元数据填充程序。 '无法读取属性'isDefaultChangeDetectionStrategy'未定义'

我们正在使用angular2-webpack-starter,与RC5保持同步,并正在尝试进行此次更新。

我们认为错误来自polyfills.browser.ts文件,其中包含以下代码:

import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/weak-map';
import 'core-js/es6/weak-set';
import 'core-js/es6/typed';
import 'core-js/es6/reflect';
// see issue https://github.com/AngularClass/angular2-webpack-starter/issues/709
// import 'core-js/es6/promise';

import 'core-js/es7/reflect';
import 'zone.js/dist/zone';

// Typescript emit helpers polyfill
import 'ts-helpers';

if ('production' === ENV) {
  // Production


} else {
  // Development

  Error.stackTraceLimit = Infinity;

  require('zone.js/dist/long-stack-trace-zone');

}

另外,我们在module.exports中的webpack.common.js条目obj如下所示:

module.exports = {
    {...},
    entry: {
        'polyfills': './src/polyfills.browser.ts',
        'vendor': './src/vendor.browser.ts',
        'main': './src/main.browser.ts'
     },
     {...}
 }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

虽然我使用的是Angular CLI webpack beta 11(NG RC5),但我不确定这会有什么帮助,但我有同样的问题。在更新CLI时,我没有看到main.ts应该有

int *a[][10]

在顶部。所以我想没有加载polyfill,反射错误恰好是第一个。