堆栈
嗨,我正在引导MEAN堆栈应用程序。我们正在使用Angular2和打字稿。 Gulp用于构建。我在MAC OS机器上开发。
问题
当我一如既往地在本地运行我的应用程序gulp watch
并打开localhost:3000
时,我的Angular应用程序无法加载,我在JavaScript控制台中出现以下错误:
当我谷歌这个问题时,我发现了这些文章:
似乎他们都建议添加2个假定缺失的导入:
import 'zone.js';
import 'reflect-metadata';
但我已经在我的vendor.ts
文件中已经有这两个导入:
import 'zone.js/dist/zone';
import 'reflect-metadata';
运行gulp watch
后,我在已编译的vendor.js
文件中有以下内容
"use strict";
require('shim');
require('rxjs/add/operator/map');
require('validate.js');
require('zone.js/dist/zone');
require('reflect-metadata');
require('@angular/core');
require('@angular/common');
require('@angular/platform-browser-dynamic');
require('@angular/router-deprecated');
require('@angular/http');
但是当我将这个vendor.js
文件与在(windows)机器上运行gulp watch
的朋友进行比较时,它们是非常不同的。他的vendor.js
文件在该文件中生成了更多代码。 (2000多行)。当我将vendor.js
文件的内容复制到我的vendor.js
文件中时,该解决方案可在本地运行。但显然在每次构建之后,内容都会重新生成并导致同样的问题。
解决方案
我已尝试多次运行typings install
,npm install
和npm cache clear
,但我无法在本地运行解决方案。我没有待定的本地更改,我的朋友也没有能够运行它。
所以有人想知道为什么vendor.js
没有很好地生成?
感谢您的时间
编辑1
根据我的要求tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
编辑2
有趣的事实:当我使用gulp watch
观看我的解决方案并使用简单的新行编辑我的vendor.ts
时,我会在手表获取更改后刷新页面,一切正常。但当我再次停止观看gulp watch
时,我又面临同样的问题。