我有一个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,它可以正常工作。
答案 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'
现在似乎有效了