【问题标题】:Node JS pkg executable not able to read files from outside?Node JS pkg 可执行文件无法从外部读取文件?
【发布时间】:2021-07-31 18:10:29
【问题描述】:

我有一个 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

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

【问题讨论】:

    标签: node.js exe yarnpkg


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多