web-dev-qa-db-ja.com

自分のTypeScriptモジュールの「モジュールが見つかりません」

新しい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/

2
MrAnima

実際、問題は私のモジュール(ooafs)からではありませんでした。モジュールを使用していたプロジェクトのtsconfig.jsonに問題がありました。moduleプロパティをcommonjsに設定する必要があるようです。

非常に遅い編集:また、esModuleInteroptrueに設定することを強くお勧めします。これにより、es6以外のモジュールをより自然な方法でインポートできます。

3
MrAnima