現在、TypeScriptで記述された複数のノードモジュールで構成され、node_modules
ディレクトリにインストールされているTypeScriptアプリケーションを作成しています。TypeScriptインポートパスエイリアス
続行する前に、私はTypeScript 2.0を使用していることに注意したいと思います。必要がある場合は、2.1 devリリースを使用することに反対しません。私はちょうどこれを働かせたいと思う。
dist/
es2015/
index.js
utils/
Calculator.js
Calculator.d.ts
Date.js
Date.d.ts
Flatpack.js
Flatpack.d.ts
src/
index.ts
utils/
Calculator.ts
Date.ts
Flatpack.ts
DISTフォルダがこのパスは私のtsconfig.json
ファイルの内部outDir
を用いて構成されていると、生成されたソースである:
各ノードモジュールの構造は、線に沿って何かです。私はpackage.json
のmain
プロパティをdist/es2015/index.js
に設定しました。注意すべき
重要なもの:私のプロジェクトで
- 私は活字体2.0
- を使用しています
node
- の
moduleResolution
タイプを使用しています私は内からファイルをインポートする方法を求めていないのですパッケージ。パッケージをNpm経由でインストールしてから、このモジュールを使用しているアプリケーション内からpackagename/
経由でインポートしています。
ここで私の質問/問題が来ます。
import {Sin, Cos, Tan} from "common-utils/utils/Calculator";
ただし、ファイルがdist/es2015/utils
ディレクトリに解決することはできません。このモジュールからファイルをインポートする一方で、私はこれを行うことができるようにしたいと思います。理想的には私の輸入品はこの具体的なdist
のフォルダから解決することが望ましく、起きているように見えるのはルートからではありません。
上記の輸入はそれを動作させるために、以下のように記述する必要がありますしかし
import {Sin, Cos, Tan} from "common-utils/dist/es2015/utils/Calculator";
、それぞれの時間は理想的ではありません、それは単に輸入のいくつかは本当に長い見えるのですdist/es2015
を書きます。 dist/es2015
ディレクトリに解決するためのモジュールを構成する方法はありますか?私は自分のプロジェクトの中で上書きする必要はありません。理想的には、各モジュールはファイルがどこから解決されるかを指定します。
Jspmで使用するプラグイン/モジュールを作成するときに、Jspmで何を聞いているのかまだわからない場合は(と謝ります)、package.json
の内部を次のようになります。
上記のTypeScript(該当する場合)に相当するものを探しています。つまり、エンドユーザーがnpm install my-cool-package
を実行して、アプリケーションで何かをインポートしようとすると、すべてのインポートはデフォルトでcommonjs
ディレクトリに解決されます(上記の例ではamdですが、同じ前提です)。
これが可能か、ここで何か誤解していますか?私はいくつかの新しいパスマッピング機能が最新のリリースに追加されたことを知っていますが、それらの使用に関するドキュメントはほとんど存在しません。
あなたは 'からの輸入{罪、COS、タン}を試すことができますindex.ts''で 'Calculator.ts'をインポートする場合"./utils/Calculator" –
これは、パッケージ自体からインポートする場合は間違いなく機能します。しかし、私の問題は、これが 'node_modules'にインストールしてから' packagename 'からインポートするモジュールだということです。 - distフォルダへの直接パスを追加するのが面倒だと問題は、別名にしたいこれをデフォルトのインポート場所にしますが、モジュール内で行います。モジュールを使用するプロジェクトで設定する必要はありません。 –
パッケージ名やファイル名を追加してパスをビルドできるconfigオブジェクトを追加すると、このタスクのsystem.jsやwebpackも見えます –