“找不到我自己的TypeScript模块的模块”

问题描述 投票:0回答:1

我刚刚向NPM注册表ooafs发布了一个新的基于TypeScript的模块。但是,当我尝试安装它并将其导入另一个TypeScript项目时,VSCode在import语句中给出了以下错误: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/

node.js typescript npm node-modules
1个回答
3
投票

实际上,问题并非来自我的模块(ooafs)。这是我使用模块的项目的tsconfig.json的一个问题:module属性显然必须设置为commonjs

很晚编辑:另外,我强烈建议将esModuleInterop设置为true,它允许您以更自然的方式导入非es6模块。

© www.soinside.com 2019 - 2024. All rights reserved.