如何使用javascript通过nexe访问已编译.exe中的捆绑文件

问题描述

我已经用打字稿创建了一个小的CLI工具,并且已经实现了使用nexe来创建一个.exe的功能。 一个新的用例是写出一些捆绑在应用程序内的文件: 假设我的CLI工具为用户提供了空模板文件,用户可以随后填写这些文件。

示例命令为:myapp.exe --action export-templates --outdir path/to/some/dir

现在应该发生的是CLI工具会将其包含的模板文件导出到该位置。

我已经捆绑了文件,请参阅我的package.json的摘录:

"scripts": {
    "build": "npm run compile && nexe compiled/index.js --target windows-x64-10.16.0 --resource \"resources/**/*\""
  }

我尝试通过以下方式访问文件:

const fileBuffer = fs.readFileSync(path.join('__dirname',`/templates/mytemplate.doc`));

但是,我想到一个例外: Error: ENOENT: no such file or directory,open 'C:\Users\Tom\compiled\templates\mytemplate.doc'

有人可以告诉我如何使用fs正确访问捆绑的.exe中的文件吗?

解决方法

好的,太可惜了,我需要一个人找出来,文档确实不是很好...

在经历了2016年至2017年(主要是https://github.com/nexe/nexe/pull/93)的一些问题后,我认为解决方案将是使用buildToolsVersion。好吧,事实证明这可能曾经有用,但是肯定不再有用。在我的应用中添加nexeres时,将遇到require('nexeres')错误。

所以我再次搜索问题,最后在https://github.com/nexe/nexe/issues/291中找到了解决方案:只需将Error: Cannot find module 'nexeres'fs.readFile与相对路径一起使用。我的最终代码如下:

fs.readFileSync

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...