获取" Uncaught reflect-metadata shim"当我尝试将我的角度项目升级到Webpack 2时

时间:2017-02-23 20:54:16

标签: angular webpack-2

我有一个Webpack 1项目,工作正常。我想升级到Webpack 2.x,所以我在

的package.json中更改了以下内容

"webpack": "^1.13.3", "webpack-merge": "^2.0.0"

"webpack": "^2", "webpack-merge": "^3.0.0"

我更新了我的webpack文件per this link。一切都很好,我得到了我期望的文物。我的pollyfills.ts看起来像这样......

...
import 'reflect-metadata'
import 'core-js/es6/typed';
import 'core-js/es6/reflect';
import "core-js/es7/reflect";
import "zone.js/dist/zone";
...

此外,我尝试将以下内容添加到我的主文件

import 'reflect-metadata'

但是当我尝试运行时,我收到以下错误Uncaught reflect-metadata shim is required when using class decorators。我正在使用....

"@angular/common": "^2.4.1",
"@angular/compiler": "^2.4.1",
"@angular/core": "^2.4.1",

有人可以帮助我解决我所缺少的问题吗?如果我恢复到较旧的webpack,它可以正常工作。

2 个答案:

答案 0 :(得分:3)

我正在使用VS-Code和Angular CLI。 今天我的控制台出现了完全相同的错误。

就我而言,我只需要重启VS-Code编辑器。 启动编辑器后,我在项目文件夹中运行“ ng serve ”,一切正常,没有任何错误。

我希望它有所帮助。

答案 1 :(得分:1)

我的答案显然与其他人相似。在此之前,我的Webpack配置看起来像这样......

entry: {
  polyfills: './conf/polyfills',
  vendor: './conf/deps',
  app: './src/ng2/main',
},

你显然不能再这样做了(有人可以找到证据吗?)。可能要归功于Webpack 2强制执行的某种隔离。所以我把它改成了......

entry: {
  app: './src/ng2/main'
},

main.ts的顶部,我添加了以下内容(在我的情况下也移动了文件)......

import './polyfills'
import './deps'

现在似乎有效了