微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node JS pkg 可执行文件无法从外部读取文件?

如何解决Node JS pkg 可执行文件无法从外部读取文件?

我有一个 JS 脚本,我使用 pkg --public filename.js 将其打包成可执行文件

我想从这样的文件中读取数据:

let filename = __dirname + "/data/streets_profiles.csv" 
fs.createReadStream(filename)
.pipe(parse({ delimiter: ',' }))
.on('data',(r) => {
    //console.log("r: ",r);
    data.push(r);        
})
.on('end',async () => {
 //... do something

虽然当我在 VS 代码 powershell 中使用 node filename.js 运行脚本时效果很好,但当我将脚本打包成可执行文件时,我得到了这个 the error from executable

我找到了一个解决方案,即添加我想读入 package.json 资产的 csv 文件路径,但我希望能够更改此 csv 文件中的数据而无需创建另一个可执行文件,并且为了不将其作为资产锁定在可执行文件中,而是作为可由 exe 读取的独立可编辑文件,有什么方法可以实现这一点,或者有什么更好的方法可以在没有这些的情况下创建可执行文件限制?

解决方法

因此,经过长时间的研究,我发现打包的可执行文件位于 C:/snapshots 中,因此获取 __dirname 没有用,但是 path.dirname(process.execPath) 解决了我的问题,因为它可以获取实际位置的文件,因此启用对同一目录中的文件的操作

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。