无法解析项目中已发布的 NPM 模块

Unable to resolve published NPM module in project

我最近发布了一个用 TypeScript 编写的简单 React 模块。我通过将本地包导入到一个项目中来测试我的模块,它工作得很好。但是,既然我已经发布了模块,每当我尝试将它导入到项目中时,我都会收到以下错误:

Failed to compile.

./src/...
Module not found: Can't resolve '<module>' in '.../src/...'

包在 package.jsonpackage-lock.json 中列出,模块出现在 node_modules 中。此外,VS Code 不会引发任何问题,所以我不太确定可能是什么问题。

NPM,作为“节点包管理器”,将包解释为节点模块。在 the documentation 中,它说它将尝试通过查找 package.json 文件来加载文件夹,并在 main 中解析相对于它找到的文件夹的路径。

因此,当使用构建步骤发布包时,请始终确保在发布之前构建它(有一个 prepublish 挂钩,在 scripts 对象中 package.json).

另一件事是确保发布的包引用正确的 mainbin(如果适用)和 module(如果适用)路径package.json 个文件。如果源文件是 src/mylib.coffee 并且构建的文件是 dist/mylib.js,package.json 必须包含 { "main": "dist/mylib.js" } 以便有人将此模块作为依赖项安装到他们的 node_modules 文件夹需要正确的文件。

简而言之,确保 package.json 中的“main”指向正确的文件!