【发布时间】:2020-05-29 17:19:34
【问题描述】:
这感觉像是一个令人尴尬的问题,但我最近向 NPM 注册表发布了一个 Node 包,现在发现它不起作用。
问题似乎是我的主文件 ./src/index.js 未包含在全局安装中。
-
我知道这是因为当我从命令行调用包时 按预期在包中运行
./bin/cli.js,但随后抛出:Error: Cannot find module '../src/index.js' Require stack: - /usr/lib/node_modules/diffcraft/bin/cli.js错误甚至引用了
./bin/cli.js中的行,其中索引 文件是必需的,所以这肯定是问题所在。 我也知道这一点,因为我检查了模块所在的文件夹 全局安装,当
bin文件夹在那里时,src文件夹不是。所以我的包的主要代码不存在。
发现这一点后,我什至对 package.json 进行了修补,以确保 ./src/index.js 在 files 数组中被明确列入白名单。我之前没有这样做过,因为NPM guidance 指出main 下列出的任何文件也会自动列入白名单。但即使在files 中明确包含该文件也不起作用。
作为参考,我没有.npmignore 文件。
我有一种可怕的感觉,我错过了一些简单而基本的东西......有什么想法可能会跳过我的主文件吗?
包裹是diffcraft。
【问题讨论】:
-
如果您包含指向存储库的链接,这里的人可能会为您提供更好的帮助,这样我们就可以准确地看到您拥有的内容、package.json 中的内容、存储库中的内容等......
-
@jfriend00 - 运行
npm repo diffcraft命令会将您带到 github 存储库。 -
仅供参考,这与全局安装没有任何关系。如果在本地安装,也会出现同样的问题。
src目录不包含在安装中。 -
从您的项目中完全省略
files字段/键 package.json - 两个文件的路径名已经通过main和bin定义. -
我看到您发布的 npm 模块 registry.npmjs.org/diffcraft/-/diffcraft-0.1.1.tgz 的存档不包含所需的目录。因此,发布过程中似乎出现了问题。
标签: node.js npm npm-install