gpt4 book ai didi

node.js - Angular 2多次错误TS2300 : Duplicate identifier

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:54 26 4
gpt4 key购买 nike

系统配置

  • Ubuntu 14.04
  • Node -v => v5.6.0
  • npm -v => 3.7.1
  • 输入最新版本(不知道如何获取版本详细信息)

第一次使用 angular2 时我的文件夹 sample/server 结构如下

|-- 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:重复标识符“内部”。

...
....

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

...

...

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)

更新

我注意到它首先对 main/ 文件夹给出错误,而不是对 browser/ 文件夹给出错误

我的猜测是问题出在 gulpfile.js 上; 在 gulpfile.js 中进行以下更改

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

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

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

请提出解决此问题的解决方法。我已经在网上看到过,但目前找不到任何有效的方法。

最佳答案

不要包含所有 *.ts 文件(包括定义文件),而是尝试仅包含所有 *.ts 文件(不包括所有 *) .d.ts 文件,main.d.ts 除外。

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

或者(不是 100% 不明白排序是如何在我的脑海中进行的)

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

更新:我最终使用 merge2 组合两个 gulp.src 流。

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(...));
});

关于node.js - Angular 2多次错误TS2300 : Duplicate identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com