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

Isa*_*rey 5 node-modules typescript reactjs npm-publish

我最近发布了一个用 TypeScript 编写的简单 React 模块。我通过将本地包导入到项目中来测试我的模块,并且它运行完美。但是,现在我已经发布了该模块,每当我尝试将其导入项目时,都会收到以下错误:

Failed to compile.

./src/...
Module not found: Can't resolve '<module>' in '.../src/...'
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*kin 4

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

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

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

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