`Не могу найти модуль` для моего собственного модуля TypeScript - PullRequest
0 голосов
/ 14 февраля 2019

Я только что опубликовал новый модуль на основе 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/ooafs@0.1.2/dist/.

1 Ответ

0 голосов
/ 15 февраля 2019

На самом деле проблема не в моем модуле (ooafs).Это была проблема с tsconfig.json проекта, в котором я использовал модуль: для свойства module должно быть установлено commonjs, очевидно.

Очень позднее редактирование: Также, Я настоятельно рекомендую установить esModuleInterop в true, что позволит вам импортировать модули не-es6 более естественным образом.

...