我正在尝试将项目从 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.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,则只能允许从 *.d.ts
的浏览器依赖项中发现 tsconfig.json
。 Here 是 John Papa 的 NgConf 演示中的一个很好的例子。
更新:这已过时,每个 Typings > 1.0.0。
关于angularjs - Angular2 和 TSD 的 "Duplicate identifier"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34207110/