在Gulp中引用Angular2时出现TypeScript错误

时间:2016-02-24 10:55:37

标签: angularjs node.js typescript npm gulp

问题是

[11:16:06] TypeScript: 103 semantic errors
[11:16:06] TypeScript: emit succeeded (with errors)

我正在使用node v5.7.0npm 3.6.0

gulp -v:

[11:26:58] Requiring external module babel-register
[11:26:58] CLI version 3.9.1
[11:26:58] Local version 3.9.1

我和巴贝尔一起喝醉了。

我使用yo 1.6.0在ubuntu 15.10下生成了文件 新文件夹中的generator-modern-web-dev

错误就像

app/test/sanity_test.spec.ts(2,1): error TS2304: Cannot find name 'describe'.
app/test/sanity_test.spec.ts(3,2): error TS2304: Cannot find name 'it'.
app/test/sanity_test.spec.ts(4,3): error TS2304: Cannot find name 'expect'.
app/test/sanity_test.spec.ts(7,2): error TS2304: Cannot find name 'xit'.
app/test/sanity_test.spec.ts(8,3): error TS2304: Cannot find name 'expect'.
/home/danielduel/Pulpit/server/node_modules/angular2/platform/browser.d.ts(77,90): error TS2304: Cannot find name 'Promise'.

然后......更多错误。 (我可以发布它,如果看到所有103个错误非常关键)

我成功地重新安装了sudo npm install npm_modules,但是我找不到它所解决的问题。

然后,来自

的任务“scripts-javascript-dist”
[11:16:09] 'scripts-javascript-dist' errored after 3.31 s
[11:16:09] Error: Error on fetch for npm:angular2@2.0.0-beta.7/bootstrap.js at file:///home/danielduel/Pulpit/server/jspm_packages/npm/angular2@2.0.0-beta.7/bootstrap.js

你能引导我解决这个问题吗?

我可以添加任务的源代码,但它们是通过抽象的ES2015架构完成的,它取决于许多文件,但如果需要的话 - 给我信息。

StackOverflow线程我正在尝试并且至少看起来很熟悉:

  1. module not found angular, generates more errors
  2. this one looks good, but I do not understand at all
  3. this one, with config is not working as fix, generates more errors
  4. 我想,我错过了一些东西,但我无法辨认出什么。

1 个答案:

答案 0 :(得分:1)

您永远不需要sudo npm install本地!

从您提出的错误中,它看起来好像项目没有所有必需的类型定义,特别是测试代码的类型定义。这可能是由于某些无效的项目设置或所包含模块内的错误引用造成的。

请检查项目中是否有tsd或打字,并为(我假设)jasmine安装缺少的类型定义。

https://github.com/typings/typings(新)

http://definitelytyped.org/tsd/(已弃用)

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/jasmine/jasmine.d.ts

很难说这是否是您案例中的解决方案,但我希望这可以帮助您追踪根本原因。