【问题标题】:Error: 'reflect-metadata shim is required' when upgrading to Webpack 2错误:升级到 Webpack 2 时“需要反射元数据 shim”
【发布时间】:2017-01-08 14:28:56
【问题描述】:

我和我的团队正在尝试将我们的代码库升级到 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'
     },
     {...}
 }

非常感谢任何帮助!

【问题讨论】:

    标签: angularjs angular webpack webpack-2


    【解决方案1】:

    不确定这是否有任何帮助,但我遇到了同样的问题,尽管我使用的是 Angular CLI webpack beta 11 (NG RC5)。在更新 CLI 时,我没有看到 main.ts 应该有

    import './polyfills.ts';
    

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

    【讨论】:

    • 我的导入工作正常,但我仍然收到此错误
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 2016-10-29
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多