问题描述
我已经用打字稿创建了一个小的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