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.dest和gulp.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.src
stream。
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(...)); });