无法解析项目中已发布的 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.json
和 package-lock.json
中列出,模块出现在 node_modules
中。此外,VS Code 不会引发任何问题,所以我不太确定可能是什么问题。
NPM,作为“节点包管理器”,将包解释为节点模块。在 the documentation 中,它说它将尝试通过查找 package.json
文件来加载文件夹,并在 main 中解析相对于它找到的文件夹的路径。
因此,当使用构建步骤发布包时,请始终确保在发布之前构建它(有一个 prepublish
挂钩,在 scripts
对象中 package.json
).
另一件事是确保发布的包引用正确的 main
、bin
(如果适用)和 module
(如果适用)路径package.json
个文件。如果源文件是 src/mylib.coffee
并且构建的文件是 dist/mylib.js
,package.json 必须包含 { "main": "dist/mylib.js" }
以便有人将此模块作为依赖项安装到他们的 node_modules
文件夹需要正确的文件。
简而言之,确保 package.json 中的“main”指向正确的文件!
我最近发布了一个用 TypeScript 编写的简单 React 模块。我通过将本地包导入到一个项目中来测试我的模块,它工作得很好。但是,既然我已经发布了模块,每当我尝试将它导入到项目中时,我都会收到以下错误:
Failed to compile.
./src/...
Module not found: Can't resolve '<module>' in '.../src/...'
包在 package.json
和 package-lock.json
中列出,模块出现在 node_modules
中。此外,VS Code 不会引发任何问题,所以我不太确定可能是什么问题。
NPM,作为“节点包管理器”,将包解释为节点模块。在 the documentation 中,它说它将尝试通过查找 package.json
文件来加载文件夹,并在 main 中解析相对于它找到的文件夹的路径。
因此,当使用构建步骤发布包时,请始终确保在发布之前构建它(有一个 prepublish
挂钩,在 scripts
对象中 package.json
).
另一件事是确保发布的包引用正确的 main
、bin
(如果适用)和 module
(如果适用)路径package.json
个文件。如果源文件是 src/mylib.coffee
并且构建的文件是 dist/mylib.js
,package.json 必须包含 { "main": "dist/mylib.js" }
以便有人将此模块作为依赖项安装到他们的 node_modules
文件夹需要正确的文件。
简而言之,确保 package.json 中的“main”指向正确的文件!