我有一个工作正常的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'
现在似乎可以工作