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



我有一个工作正常的WebPack 1项目。我想升级到webpack 2.x,所以我在package中更改以下内容。

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

to

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

我根据此链接更新我的WebPack文件。一切都很好,我得到了我期望的文物。我的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,则可以正常工作。

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

就我而言,我只需要重新启动VS代码编辑器即可。启动编辑器后,我在项目文件夹中运行" ng服务",并且一切都按预期工作,而没有任何错误。

我希望它有帮助。

我的答案显然与其他人相似。在此之前,我的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'

现在似乎可以工作

最新更新