module/dist/Anything ではなくモジュールからインポートする方法を探している人へ
かなり簡単な解決策を見つけました
まず、私のフォルダ構造は次のようになります
- project
|- package.json
|- app
||- package.json
||- ...
|- api
||- package.json
||- ...
|- shared
||- package.json
||- tsconfig.json
||- index.ts
||- src
|||- MySharedResource.ts
|||- MySharedSomething.ts
...
(共有は、APIとアプリの両方にローカルにインストールされたnpmパッケージです)そして、シンプルな方法で共有からインポートできるようにしたかったのです
import { MySharedResource } from "shared";
これを行う方法は、必要なすべてのコンポーネントをMySharedResource.ts
およびからエクスポートすることでしたMySharedSomething.ts
export interface MySharedResource {
...
}
index.ts
次に、次のようにエクスポートします。
export * from "./src/MySharedResource";
export * from "./src/MySharedSomething";
重要な注意点
tsconfig.json
in /shared にはoutDirオプションを(たとえば) に設定する必要があります。これにより、それがコンパイルされ、他のすべてのものは /shared/dist/src にコンパイルされます。また、あなたのセットで:./dist
index.ts
/shared/dist/index.js
package.json
"main":"dist/index.js"
注1
ファイルごとに複数のものをエクスポートできますが、このようなインポートが必要な場合
import { Thing } from 'shared/Thing';
次に、 /shared のThing.ts
すぐ隣に別のファイル (この場合は ) が必要で、その中に次のものがあります。index.ts
export * from "./src/Task";
注2
これを行うこともできます
export * as Thing from "./src/Thing";