electron 如何利用电子伪造技术在电子生产中添加额外的资源文件

643ylb08  于 2022-12-20  发布在  Electron
关注(0)|答案(2)|浏览(255)

我有一个文件,我需要强制使我的应用程序的工作,我能够使用该文件在开发中指定固定路径var path = process.cwd() + '/src/app/components/task/Scripts';和文件名之后,但打包后的应用程序,我想移动的文件,我需要在extraResources文件夹中的系统,从那里我将能够使用它let path = pathPackage.join(process.resourcesPath, 'extraResources');,我正在使用电子锻造制造商生产构建exe,但是在安装exe后没有创建extraResources文件夹,我在package.json文件中指定了它

"build": {
 "extraResources": [
   "./extraResources/**"
 ]
},

有人能提供一个解决方案吗,我已经测试了所有的例子,但没有一个工作

lmvvr0a8

lmvvr0a81#

正如documention中提到的(此处记录了实际选项),您可以使用packagerConfig配置的extraResource选项添加文件。

额外资源额外资源:弦|字符串[]

  • 要直接复制到应用的Contents/Resources目录(适用于macOS目标平台)和resources目录(适用于其他目标平台)中的一个或多个文件。* 资源目录可在打包的应用中通过process.resourcesPathvalue引用。*

例如,在package.json文件中:

{
   "config": {
     "forge": {
       "packagerConfig": { 
         "extraResource": [
           "./src/extraResources/file.txt",
           "./src/extraResources/folder"
          ]
        }
      }
    }
  }

运行npm run package时,这些文件将放置在process.resourcesPath目录中。

u5rb5r59

u5rb5r592#

同样的问题。我的解决方案是在forge.config.js中使用他们的一个钩子:

const path = require('path');
const fs = require('fs');

module.exports = {
  packagerConfig: {},
  rebuildConfig: {},
  makers: [
    ...
  ],
  hooks: {
    packageAfterCopy: async (config, buildPath, electronVersion, platform, arch) => {
      var src = path.join(__dirname, '../your/path/');
      var dst = buildPath;
      fs.cpSync(src, dst, {recursive: true});
    }
  }
};

注意:您需要最新版本的node.js来运行fs.cpSync

相关问题