电子 - 如何添加外部文件?

时间:2017-09-03 10:23:08

标签: javascript node.js electron

我有一个电子应用程序。我尝试让应用程序打开一个.exe文件。我在名为lib的根文件夹中创建了一个目录,并将.exe文件放在那里。在开发中,我使用__dirname + '/lib/file.exe打开文件没有问题,但是当我打包应用程序时(使用yarn dist),它没有打开exe文件,也没有lib文件夹在dist文件夹上。

我尝试使用console.log(__dirname)来控制默认位置,然后输出\dist\win-unpacked\resources\app.asa(这是一个文件)。

如何添加应用程序打包时可以访问的外部文件?

4 个答案:

答案 0 :(得分:6)

将以下代码添加到package.json:

 "build": {
    "extraResources": [
      {
        "from": "./src/extraResources/",
        "to": "extraResources",
        "filter": [
          "**/*"
        ]
      }
    ]
  }

然后,您可以使用来访问文件

const configFile = path.join(path.dirname(__dirname), 'extraResources','config.json');

我使用以下文件夹结构,该结构允许我以任何方式运行该应用程序。

从项目文件夹: node_modules\.bin\electron.cmd src\main\index.js

来自未打包的来源 dist\win-unpacked\app.exe check-for-update

从已安装的文件夹 C:\Users\user\AppData\Local\Programs\app\app.exe

+-- dist
|   +-- win-unpacked
|      +-- resources
|         +-- extraResources
|            config.json
+-- node_modules
+-- src 
|   +-- extraResources
|      config.json
|      someFile.js
|   +-- main
|      index.js
|   +-- render
|      index.js

答案 1 :(得分:2)

通过使用extraResources来管理解决它。应在您的package.json文件中声明。

例如:

  1. 在pacakge.json
  2. 旁边创建一个名为extraResources的新文件夹
  3. 将以下代码添加到package.json文件中:

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

  4. 然后,您可以使用主应用中的__dirname + '/../extraResources/'访问此文件夹中的文件。

答案 2 :(得分:1)

我找到了一个新的解决方案, 在Windows上使用electronic-packager时,不要在过程结束时将文件添加到资源文件夹中。

因此我将此命令添加到了db1_name

ConnectionManager::get('default')->config()['database'];

现在文件被添加到资源添加器中

package.json

答案 3 :(得分:-1)

与@ user2298995的回答相同,但在Windows x64中使用__dirname +'/../extraResources/filename'时出错。

但是path.join(process.resourcesPath,'extraResources',fileName)工作正常。