Typescript で記述された NPM パッケージに取り組んでおり、公開するライブラリをコンパイルするときにモジュールの解決に頭を悩ませています。
プロジェクト全体を通して、私は非相対インポートを使用して の煩わしさを回避してきました../../../
。ただし、プロジェクト内で相対インポートを使用する必要があるというタイプスクリプトのドキュメントを読みました。
相対インポートは、インポート ファイルに対して相対的に解決され、アンビエント モジュール宣言に解決できません。実行時に相対位置を維持することが保証されている独自のモジュールには、相対インポートを使用する必要があります。
非相対インポートは、baseUrl に対して相対的に、または以下で説明するパス マッピングを介して解決できます。また、アンビエント モジュール宣言に解決することもできます。外部依存関係をインポートするときは、非相対パスを使用してください。
相対インポートを優先して適切なインポートを犠牲にする必要はありませんが、これを機能させるためにコンパイラ設定をセットアップする方法がわかりません。テストを実行するときNODE_PATH
、モジュールを解決するために指定しますが、これはコンパイル後では機能しません。
非相対インポートを使用してファイルを書き込めるようにしたいのですが、dist/
ファイルがインポートを解決できるように何らかの方法で変換してもらいたいです。
このプロジェクトは、こちらの github でホストされています。
関連する問題は、フォルダー内のindex.d.ts
ファイルが次のようになることです。dist/
import { Emitter } from 'emitter';
import { Schema } from 'migrations';
import { Model, model, relation } from 'model';
import { Builder } from 'query';
export { Builder, Emitter, Model, model, relation, Schema };
ただし、すべてのモジュールには、モジュールを解決できないというエラーがあります。これらのインポートを現在の形式に保ちながら、ビルド時に何らかの方法で変換して、npm パッケージを公開するときにモジュールを正しく解決するにはどうすればよいですか。