如何从 vercel/pkg 打包的 .exe 中读取或复制资源?

问题描述 投票:0回答:1

我有一个

pkg
打包的
.exe
我需要从中复制文件 - 我知道这可能是不可能的 - 但肯定有某种方法可以将资产文件取出,对吗?

在我将其添加到我的

pkg
中后,我非常有信心这些资产已包含在
package.json
中:

  "pkg": {
    "assets": [
      "assets/**/*"
    ]
  },

--config package.json
到我的
pkg
命令。

但是,除了我猜想将文件存储为字符串然后将它们写入磁盘之外,似乎没有任何方法可以从可执行文件中获取文件(在我看来,这似乎很疯狂。)

我有更好的方法来忽略吗?我猜 Node 的

fs
命令无法以任何方式读入
.exe
,但希望
.exe
应该能够以某种方式将文件写出某处?

有谁知道怎么做吗?

TLDR: 我希望从

.exe

中读取或最好复制资产

顺便说一下:Vercel/pkg 曾经被称为 Zeit/pkg

javascript node.js node-modules assets zeit-pkg
1个回答
1
投票

我能够使用这样的代码来实现它:

const isPackaged = process.pkg !== undefined; // process.pkg is only defined when packaged
const root = isPackaged ? 'C:\\snapshot\\your-package-name' : process.cwd();

export const ASSETS_PATH = path.join(root, 'assets');

起初我对尝试这个犹豫不决,因为我认为如果用户已经有这样的目录,C:\snapshot 可能不是一个可靠的路径 - 并且可能会使用其他路径 - 但事实并非如此。 C:\snapshot 是虚拟的,因此永远不会与真实文件系统发生冲突。


澄清一下,我的项目的根目录中的这些文件夹与我的

package.json
处于同一级别 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.