Npm打包/发布:找不到文件



我用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文件进行以下两项修改:

  1. 将行号7从此更改为:

    fs.readFile("./schlachter.json","utf8",(err,data(=>改为:
    
    fs.readFile(path.resolve(__dirname, "./schlachter.json"), "utf8", (err, data) => {
    
  2. 通过在文件顶部添加以下require语句导入path模块:

    const path = require("path");
    

说明:

上述更改使用内置的path模块resolve()方法来解决以下两个路径段:

  • __dirname-包含模块的目录的路径
  • ./schlachter.json-相对路径

这基本上形成了指向schlachter.json文件位置的绝对路径。

最新更新