新しいTypeScriptベースのモジュールをNPMレジストリに公開しました ooafs 。ただし、インストールして別のTypeScriptプロジェクトにインポートしようとすると、VSCodeはインポートステートメントで次のエラーを表示します:Cannot find module 'ooafs'.ts(2307)
。
このモジュールのソースファイルはJavaScriptでdist/
フォルダーにコンパイルされ、定義(.d.ts
)も生成されます。
公開されたモジュールのツリーは次のとおりです(npm install
のときにダウンロードするもの):
.
├── dist
│ ├── Entry.d.ts
│ ├── EntryFilter.d.ts
│ ├── EntryFilter.js
│ ├── Entry.js
│ ├── EntryType.d.ts
│ ├── EntryType.js
│ ├── FSTypings.d.ts
│ ├── FSTypings.js
│ ├── index.d.ts
│ └── index.js
├── LICENSE
├── package.json
└── README.md
package.json
には、次のエントリが含まれています。
{
"main": "dist/index.js",
"types": "dist/index.d.ts",
...
}
モジュールはRunkit(純粋なJS)で正常に動作するため、私が抱えている唯一の問題はTypeScriptに関連していると思います。また、宣言ファイルの欠落が唯一の問題である場合に、TypeScriptがモジュールが存在しないと通知するのは初めてではありません。
コンパイルプロセスのステップがありませんか?私のpackage.json
プロパティは間違っていますか?
さらにコードを表示する必要がある場合は、Githubリンクが質問の最初にあり、公開されているモジュール構造は次の場所にあります: https://unpkg.com/[email protected]/dist/ 。
実際、問題は私のモジュール(ooafs)からではありませんでした。モジュールを使用していたプロジェクトのtsconfig.json
に問題がありました。module
プロパティをcommonjs
に設定する必要があるようです。
非常に遅い編集:また、esModuleInterop
をtrue
に設定することを強くお勧めします。これにより、es6以外のモジュールをより自然な方法でインポートできます。