簡體   English   中英

使用電子生成器將文件夾和其中的文件包含到電子構建中?

[英]Include a folder and the files inside it to electron build using electron-builder?

我在 Electron 項目的工作目錄中名為data的目錄中有一些 JSON 文件。 我使用具有以下配置(package.json)的electron-build成功構建了應用程序。

{
  "name": "My App",
  "version": "0.0.9",
  "description": "TEST DESC",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "pack": "build --dir",
    "dist": "build"
  }
  "author": "Test",
  "license": "CC0-1.0",
  "build": {
    "appId": "test.tester.test",
    "directories": {
      "app": ""
    },
    "extraFiles": [
      "data"
    ],
    "dmg": {
      "contents": [
        {
          "x": 110,
          "y": 150
        },
        {
          "x": 240,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        }
      ]
    },
    "win": {
      "target": "squirrel",
      "icon": "build/icon.ico"
    }
  },
  "devDependencies": {
    "electron": "~1.7.8",
    "electron-builder": "^20.11.1"
  },
  "dependencies": {
    "electron-settings": "^3.1.4",
    "jquery": "^3.3.1",
    "leveldown": "^3.0.0",
    "mkdirp": "^0.5.1",
    "shelljs": "^0.8.1"
  }
}

我想數據目錄沒有被添加到構建文件中。 因為我使用數據目錄中的文件來呈現應用程序中的視圖,這在構建的應用程序中不起作用。 請提出解決方案。

我在應用程序中使用這些 JSON 文件,如下所示:

fs.readFile('./data/userdata.json', 'utf8', function readFileCallback(err, data) {      
    if(data == '') { data = '[]'; }
    var users = JSON.parse(data);

    //Render Code
});
"build": {
    "extraResources": [
        {
            "from": "data",
            "to": "data"
        }
    ]
}

像這樣添加后,Electron-builder 將在打包應用程序后將數據文件夾復制到應用程序的資源/數據 這樣你就可以用這個讀取文件了。

const dataPath =
  process.env.NODE_ENV === 'development'
    ? path.join(__dirname, '../../data')
    : path.join(process.resourcesPath, 'data');

fs.readFile(path.join(dataPath,'userdata.json', 'utf8', function readFileCallback(err, data) {      
  if(data == '') { data = '[]'; }
  var users = JSON.parse(data);

  //Render Code
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM