4

プロジェクトを Angular 1 から Angular 2 に変換しようとしています。

これは、いくつかの共通コードを含むクライアントおよびサーバー プロジェクトです (したがって、まとめておきます)。クライアント側で Angular 2 を使用したいので、ng2 QuickStartに従いました。現在、プロジェクト内でビルドしようとしています。

TSD依存関係のタイピングを管理するために使用しています。これらの依存関係の一部は、依存socket.ioしていnode.d.tsます。私の問題は、angular2すでにアンビエント定義を公開して作成しているため、使用しnode.d.tsたいときに2つの定義間で競合が発生することです: TSDangular2 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'));

});

私の問題を示す簡単なリポジトリもセットアップしました。タイピングを維持しながら、このエラーを解決するにはどうすればよいですかTSD。(最善の解決策はangular2、その内部を公開しないようにすることですnode.d.ts)

4

1 に答える 1

0

Typings の使用を開始した場合は*.d.ts、ブラウザの依存関係からの検出のみを許可できますtsconfig.json。これは、John Papa の NgConf デモの優れた例です

更新: これは Typings > 1.0.0 では古くなっています。

于 2016-06-30T12:56:52.323 に答える