Electron 在包上添加资源文件
Electron add resource file on package
我正在构建我的第一个电子应用程序,但我无法打包它。
当我使用 npm start
进行测试时,一切正常,但是当我尝试打包并完成时,我 运行 它,但我得到了这样的东西 ENOENT: no such file or directory, lstat
。
我有这样的来源。
fs.copy(path.resolve('src/app/resource/'), dir + '/resource/', e => {
if (e) {
reject(e);
return;
}
resolve(true);
});
这会将文件复制到指定的目录,这似乎是错误的原因。
编辑:
我启用了 devtools 并为 windows 创建了安装程序,但刚刚得到这个。
我的文件似乎没有包含在构建中。
这是我的package.json
{
"name": "exporter",
"productName": "Exporter",
"version": "0.0.1",
"description": "",
"license": "MIT",
"repository": "",
"author": {
"name": "",
"email": "",
"url": "none"
},
"scripts": {
"start": "electron .",
"build": "electron-packager . --out=/mnt/Busy\ Drive/dist/exporter --asar --overwrite --all",
"pack": "build --dir",
"dist": "build -wl"
},
"dependencies": {
"bootstrap": "^4.0.0-beta",
"config": "^1.28.1",
"electron-debug": "^1.0.0",
"fs-extra": "^4.0.2",
"is-electron-renderer": "^2.0.1",
"jquery": "^3.2.1",
"mysql": "^2.15.0",
"popper.js": "^1.13.0",
"winston": "^2.4.0"
},
"devDependencies": {
"devtron": "^1.1.0",
"electron": "^1.8.1",
"electron-builder": "^19.47.1",
"electron-builder-squirrel-windows": "^19.47.0",
"electron-packager": "^8.0.0",
"eslint": "^4.11.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.6.0",
"eslint-plugin-standard": "^3.0.1"
},
"build": {
"appId": "no-id",
"linux": {
"target": [
"dir"
]
},
"win": {
"target": "nsis"
}
}
}
我已经尝试过不同的打包程序,但仍然没有成功。
我的package.json有错吗?
罪魁祸首正在使用 path.resolve
,您应该使用 path.join(__dirname, 'your/path/here')
,这样它才能访问 asar 文件。
我正在构建我的第一个电子应用程序,但我无法打包它。
当我使用 npm start
进行测试时,一切正常,但是当我尝试打包并完成时,我 运行 它,但我得到了这样的东西 ENOENT: no such file or directory, lstat
。
我有这样的来源。
fs.copy(path.resolve('src/app/resource/'), dir + '/resource/', e => {
if (e) {
reject(e);
return;
}
resolve(true);
});
这会将文件复制到指定的目录,这似乎是错误的原因。
编辑:
我启用了 devtools 并为 windows 创建了安装程序,但刚刚得到这个。
这是我的package.json
{
"name": "exporter",
"productName": "Exporter",
"version": "0.0.1",
"description": "",
"license": "MIT",
"repository": "",
"author": {
"name": "",
"email": "",
"url": "none"
},
"scripts": {
"start": "electron .",
"build": "electron-packager . --out=/mnt/Busy\ Drive/dist/exporter --asar --overwrite --all",
"pack": "build --dir",
"dist": "build -wl"
},
"dependencies": {
"bootstrap": "^4.0.0-beta",
"config": "^1.28.1",
"electron-debug": "^1.0.0",
"fs-extra": "^4.0.2",
"is-electron-renderer": "^2.0.1",
"jquery": "^3.2.1",
"mysql": "^2.15.0",
"popper.js": "^1.13.0",
"winston": "^2.4.0"
},
"devDependencies": {
"devtron": "^1.1.0",
"electron": "^1.8.1",
"electron-builder": "^19.47.1",
"electron-builder-squirrel-windows": "^19.47.0",
"electron-packager": "^8.0.0",
"eslint": "^4.11.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.6.0",
"eslint-plugin-standard": "^3.0.1"
},
"build": {
"appId": "no-id",
"linux": {
"target": [
"dir"
]
},
"win": {
"target": "nsis"
}
}
}
我已经尝试过不同的打包程序,但仍然没有成功。 我的package.json有错吗?
罪魁祸首正在使用 path.resolve
,您应该使用 path.join(__dirname, 'your/path/here')
,这样它才能访问 asar 文件。