Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为Angular 2设置gulp typescript?_Javascript_Typescript_Gulp_Ecmascript 6_Angular - Fatal编程技术网

Javascript 如何为Angular 2设置gulp typescript?

Javascript 如何为Angular 2设置gulp typescript?,javascript,typescript,gulp,ecmascript-6,angular,Javascript,Typescript,Gulp,Ecmascript 6,Angular,目前,我使用的是tsc编译器,带有来自提示符的监视标志。它运行良好,加载所有定义文件并正确编译每个angular2文件。但是,通过外壳窗口使用非常不舒服 我的目标是创建一个gulp任务,它可以根据angular2定义翻译任何类型脚本文件。我参与了gulp typescript,似乎很容易使用,所以下面是代码: var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json'); gulp.task('typescrip

目前,我使用的是
tsc
编译器,带有来自提示符的监视标志。它运行良好,加载所有定义文件并正确编译每个angular2文件。但是,通过外壳窗口使用非常不舒服

我的目标是创建一个gulp任务,它可以根据angular2定义翻译任何类型脚本文件。我参与了
gulp typescript
,似乎很容易使用,所以下面是代码:

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json');
gulp.task('typescript', function() {
  gulp
    .src([
      paths.src + '/*.ts'
    ])
    .pipe($.typescript(tsProject)).js
    .pipe(gulp.dest(paths.tmp));
});
这是文件夹结构:

...
src/
---- app/
-------- ts/
------------ *.ts
---- typings/
-------- angular2/
------------ angular2.d.ts
------------ http.d.ts
-------- es6-promise/
------------ ...
-------- rx/
------------ ...
-------- tsd.d.ts
---- *.ts
---- tsconfig.json
gulpfile.js
...
tsconfig文件没有
文件
列表,因此编译器应该检查
src
中的任何ts文件(在任何级别)

调用任务时,我收到以下错误:

error TS2307: Cannot find module 'angular2/angular2'.
error TS2307: Cannot find module 'angular2/http'.

如何告诉typescript编译器要使用哪个
d.ts
文件?

看起来您还没有在文件中声明
amd reference

尝试在导入模块的文件中声明如下内容:

/// <amd-dependency path="./src/typings/angular2/angular2.d.ts" />
/// <amd-dependency path="./src/typings/angular2/http.d.ts" />

import angular2 = require("angular2");
import http = require("http")
//
/// 
导入角度2=要求(“角度2”);
导入http=require(“http”)

//我建议在gulp.src中添加定义。大概是这样的:

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json');
gulp.task('typescript', function() {
  gulp
    .src([
      paths.src + '/app/**/*.ts',
      paths.src + '/typings/**/*.d.ts'
    ])
    .pipe($.typescript(tsProject)).js
    .pipe(gulp.dest(paths.tmp));
});

这也让我咒骂了一段时间。确保在tsconfig.json的compilerOptions节点中有:

{
  "compilerOptions": {
    "moduleResolution": "node",
  }
}

您是否在您的文件中声明了amd引用,例如
//
?请参阅此项目,它可能会有用:谢谢!非常简单,当我开始这个项目时,我使用了这些引用行,但是
tsc
也没有,所以我删除了它们。现在我可以再次表示欢迎了!我很高兴帮助你!:)祝你好运