4

我正在尝试将项目从 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'));

});

我还建立了一个简单的存储库来展示我的问题。如何在保持TSD打字的同时解决此错误。(最好的解决方案是防止angular2暴露其内部node.d.ts

4

1 回答 1

0

如果您开始使用 Typings,则只能允许*.d.tstsconfig.json. 是 John Papa 的 NgConf 演示中的一个很好的例子。

更新:这是过时的每个 Typings > 1.0.0。

于 2016-06-30T12:56:52.323 回答