6.3.1
4.0.3
2.0.0
これは、ソースファイルがprotractor/globals
インポートするtypescriptプロジェクトに固有です。 具体的には、 protractor/globals
インポートする場合、NPMリリースには対応する定義ファイル( globals.d.ts
)の代わりにglobals.ts
ファイルが含まれているため、typescriptコンパイラは消費するtypescriptプロジェクトの共通ソースルートを計算します分度器のglobal.ts
依存関係(おそらくnode_modules/protractor
)と、消費プロジェクトのソースが含まれている場所(たとえば、 src/test/**/*.ts
)との間の共通パスへ。 これにより、コンパイラはすべての親ディレクトリを含むソースファイルを出力します。
これは、typescriptコンパイラがコンパイルされたファイルを出力する場所に関する純粋な問題であることに注意してください。 コンパイルは正常に行われ、分度器は期待どおりに(驚くほど)消費されます。
私が十分に説明していないシナリオをよりよく示すために、このサンプルプロジェクトを参照し
ここでこれを解決することは、2つのことの組み合わせになると思います。
globals.ts
ファイルのコンパイル時に定義ファイルが作成されるようにします。 とglobals.ts
ファイルを削除し、コンパイルされたjavascriptファイルと対応する定義ファイルのみを残します。これが適切な場合は、ソリューションの最初の部分を処理するためのプルリクエストを送信していただければ幸いです。 NPMへのリリースプロセスがまだプロジェクトのリリースドキュメントに従っている場合は、 globals.ts
ファイルを削除する手順で更新することもできますが、実際にリリースを実行する人がそれを行う方がよい場合があります。
私はこれを熟考し、Typescriptコンパイラが期待どおりに動作していると信じていますが、まだTypescriptに足を濡らしているので、同意できない場合はお知らせください。
(編集:バグテンプレートを反映するようにフォーマットを更新)
@tmeneauこの問題をありがとう:私はgithubの例が本当に好きでした...👍👍👍
したがって、これはoutDirを使用する場合の副作用です。 たとえば、 outDir
がoutput
に設定されている場合、トランスパイルされたファイルに加えて、 output/node_modules/protractor/globals.js
もトランスパイルされます。 私はもともとglobals.tsファイルを含めました。なぜなら(当時)いくつかの実験の後、TypeScriptファイルがないとファイルタイプをインポートできなかったからです。
提案を通過するには:
exampleTypescript
実験した後、これは機能しているように見えます。 .npmignoreを更新して、そのファイルを公開せず、ProtractorをTypeScript 2にアップグレードします。https : @cnishinaは、例がglobal.ts
ファイルを削除しますが、対応するglobals.d.ts
宣言はありませんprotractor/globals
インポートを、プロジェクトを消費するためにtypescriptコンパイラから見えないようにしますか?
したがって、私の提案の最初の部分は、コンパイルされたglobals.js
を削除して、 globals.d.ts
宣言を優先することではなく、NPMパッケージに次のものが含まれるように両方を含めることだったと思います。
globals.ts
ソースファイルなし。
これは、 global.ts
ファイルをコンパイルするときに--declaration
フラグを思います。 たとえば、以下のようにtsc:globals gulpタスクを変更すると、tsc
tsc:w
タスクと
gulp.task('tsc:globals', function(done) {
runSpawn(done, 'node', ['node_modules/typescript/bin/tsc', '--declaration', 'globals.ts'],
'ignore');
});
何か足りないものがあれば教えてください。すぐに修正してくれてありがとう! ちなみに、Typescriptで分度器を使用することは深刻な爆発です!
うん...👍 globals.d.ts
protractor/globals
インポートを機能させるには、 globals.d.ts
がまだ存在しているはずです。 PRを更新しました。 ありがとう!
最も参考になるコメント
@cnishinaは、例が
global.ts
ファイルを削除しますが、対応するglobals.d.ts
宣言はありませんprotractor/globals
インポートを、プロジェクトを消費するためにtypescriptコンパイラから見えないようにしますか?したがって、私の提案の最初の部分は、コンパイルされた
globals.js
を削除して、globals.d.ts
宣言を優先することではなく、NPMパッケージに次のものが含まれるように両方を含めることだったと思います。globals.ts
ソースファイルなし。これは、
global.ts
ファイルをコンパイルするときに--declaration
フラグを思います。 たとえば、以下のようにtsc:globals gulpタスクを変更すると、tsc
tsc:w
タスクと何か足りないものがあれば教えてください。すぐに修正してくれてありがとう! ちなみに、Typescriptで分度器を使用することは深刻な爆発です!