angular度2多次错误TS2300:重复的标识符

系统configuration

  • Ubuntu 14.04
  • 节点-v => v5.6.0
  • npm -v => 3.7.1
  • typings最新版本(不知道如何获得版本细节)

而我的文件夹样本/服务器结构第一次使用angular2时下面

|-- server.js |-- server.ts |-- tsconfig.json |-- typings | |-- browser | | `-- ambient | | |-- express | | | `-- express.d.ts | | |-- mime | | | `-- mime.d.ts | | |-- node | | | `-- node.d.ts | | `-- serve-static | | `-- serve-static.d.ts | |-- browser.d.ts | |-- main | | `-- ambient | | |-- express | | | `-- express.d.ts | | |-- mime | | | `-- mime.d.ts | | |-- node | | | `-- node.d.ts | | `-- serve-static | | `-- serve-static.d.ts | `-- main.d.ts `-- typings.json 

tsconfig.json

 { "compilerOptions": { "target": "ES5", "module": "commonjs", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false }, "files": [ "./server/typings/main.d.ts", "./server/server.ts" ], "exclude": [ "node_modules", // even used ../node_modules as the folder is located above this folder "typings/browser.d.ts", "typings/browser" ] } 

typings.json

 { "ambientDependencies": { "express": "github:DefinitelyTyped/DefinitelyTyped/express/express.d.ts#d1f6bde13f2209be42e86c3686761e8bfcbb50a5", "mime": "github:DefinitelyTyped/DefinitelyTyped/mime/mime.d.ts#d1f6bde13f2209be42e86c3686761e8bfcbb50a5", "node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#aee0039a2d6686ec78352125010ebb38a7a7d743", "serve-static": "github:DefinitelyTyped/DefinitelyTyped/serve-static/serve-static.d.ts#0fa4e9e61385646ea6a4cba2aef357353d2ce77f" } } 

gulpgile.js

 var path = require('path'); var gulp = require('gulp'); var gutil = require('gulp-util'); var ts = require('gulp-typescript'); gulp.task('log', function() { gutil.log('== My Log Task ==') }); gulp.task('buildServer', function () { var tsProject = ts.createProject('./server/tsconfig.json'); return gulp.src('./server/**/*.ts') .pipe(ts(tsProject)) .js .pipe(gulp.dest('./server')) }); 

main.d.ts和browser.d.ts

 /// <reference path="main/ambient/express/express.d.ts" /> /// <reference path="main/ambient/mime/mime.d.ts" /> /// <reference path="main/ambient/node/node.d.ts" /> /// <reference path="main/ambient/serve-static/serve-static.d.ts" /> 

运行时

 usernam@hostname:~/sample$ gulp buildServer 

它会给出655个类似于下面的错误,引用node.d.ts的每一行

server / typings / browser / ambient / node / node.d.ts(754,9):错误TS2300:重复标识符'internal'。


….

server / typings / main / ambient / node / node.d.ts(1943,18):错误TS2300:重复标识符'Domain'。

…..

server / typings / main / ambient / serve-static / serve-static.d.ts(85,5):错误TS2300:重复标识符'export ='。

最后停下来

 [22:38:56] TypeScript: 655 semantic errors [22:38:56] TypeScript: emit succeeded (with errors) 

UPDATE

我注意到它给主/文件夹错误比浏览器/文件夹

我的猜测是这个问题是与gulpfile.js ; 在gulpfile.js中进行以下更改

return gulp.src('./server/**/*.ts') gulp.src('./server/main/*.ts') return gulp.src('./server/**/*.ts')返回gulp.src('./server/main/*.ts')

然后gulp buildServer运行,但立即完成。

  • 这个.js做什么?
  • gulp.destgulp.src可以指向同一个文件夹吗?

请build议什么是解决这个问题的工作。我已经看到了networking,但现在找不到任何工作。

除了包括定义文件在内的所有*.ts文件之外,不包括除main.d.ts之外的所有 *.d.ts文件。

 gulp.src(['server/**/*.ts', '!server/**/*.d.ts', 'server/typings/main.d.ts']) 

或者(不是100%关于如何sorting在我的脑海顶部)

 gulp.src(['server/**/*.ts', 'server/typings/main.d.ts', '!server/**/*.d.ts']) 

更新:我结束了使用merge2合并两个gulp.srcstream。

 var gulp = require('gulp'); var merge = require('merge2'); var typescript = require('gulp-typescript'); gulp.task('build', function() { var tsFiles = gulp.src('server/**/*.ts', '!server/typings/**'); return merge(tsFiles, gulp.src('server/typings/main.d.ts')) .pipe(typescript(...)); });