我使用node.js制作了一个CLI工具,该工具运行良好。然后,我想将其作为npm软件包发布,效果也不错。但是现在由于无法找到(本地)文件而出现以下错误:
/usr/lib/node_modules/german-bible-cli/app.js:8 if (err) throw err; ^ [Error: ENOENT: no such file or directory, open './schlachter.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: './schlachter.json' }
安装发布的程序包并尝试运行以下命令后,将发生错误:
$ german-bible-cli
该项目可以在这里找到。谢谢你的帮助我:))✝
编辑:我的package.json确实具有bin
指定的字段,如下所示,尽管我尚未将当前版本上传到GitHub。
"bin": "app.js"
对您的app.js
文件进行以下两项修改:
更改第7行:
fs.readFile(“ ./ schlachter.json”,“ utf8”,(错误,数据)=> {
改为:
fs.readFile(path.resolve(__dirname, "./schlachter.json"), "utf8", (err, data) => {
path
通过require
在文件顶部添加以下语句来导入模块:
const path = require("path");
说明:
前述更改利用内置path
模块resolve()
方法来解决以下两个路径段:
__dirname
-包含模块的目录的路径。./schlachter.json
-相对路径。这实质上形成了schlachter.json
文件位置的绝对路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句