【发布时间】:2016-03-16 09:31:09
【问题描述】:
我正在尝试将项目从 Angular 1 转换为 Angular 2。
这是一个带有一些通用代码的客户端和服务器项目(所以我将它们放在一起)。我想在客户端使用 Angular 2,所以我遵循了ng2 QuickStart。我目前正在尝试在我的项目中构建它。
我正在使用TSD 来管理我的依赖项类型。其中一些依赖项,如socket.io 依赖于node.d.ts。
我的问题是angular2 已经暴露了node.d.ts 并创建了环境定义,所以当我想将TSD 与angular2 一起使用时,这两个定义之间存在冲突:
typings\node\node.d.ts(961,9): error TS2300: Duplicate identifier 'path'.
这是我的 gulp 任务:
gulp.task('build.conflict', function(){
var browserProject = tsc.createProject('browser.tsconfig.json', {
typescript: typescript
});
var src = [
'src/browser/**/*.ts',
'typings/**/*.d.ts' // commenting out this line results in unknown modules
];
var result = gulp.src(src)
.pipe(tsc(browserProject));
return result.js
.pipe(gulp.dest('build/browser'));
});
我还设置了a simple repository 来演示我的问题。
如何在保持TSD 输入的同时解决此错误。 (最好的办法是防止angular2暴露其内部node.d.ts)
【问题讨论】:
-
好的,所以我刚刚发现了Typings 并且能够设置一个快速修复。一旦它更稳定,我会发布答案。
-
所以我认为它从未变得更稳定?
-
仍在等待官方修复。 Angular 的 Github 上存在一些未解决的问题,而 TS 目前似乎正在使用 Typings,所以我希望我们能尽快得到一个可靠的解决方案。
-
快速修复会很酷:)
标签: angularjs node.js typescript angular tsd