vendor.ts到vendor.js编译失败

时间:2016-06-08 13:23:51

标签: javascript typescript vendor

堆栈

嗨,我正在引导MEAN堆栈应用程序。我们正在使用Angular2和打字稿。 Gulp用于构建。我在MAC OS机器上开发。

问题

当我一如既往地在本地运行我的应用程序gulp watch并打开localhost:3000时,我的Angular应用程序无法加载,我在JavaScript控制台中出现以下错误:

enter image description here

当我谷歌这个问题时,我发现了这些文章:

似乎他们都建议添加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 installnpm installnpm 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时,我又面临同样的问题。

0 个答案:

没有答案