exiftool-vendored
in Electron requires special configuration for app packaging and sandboxing.
Support Notice: Due to Electron's complexity, we cannot provide support for Electron-specific issues. Use Stack Overflow, Electron Discord, or Electron forums.
npm install exiftool-vendored
# electron-builder.yml
asarUnpack:
- "node_modules/exiftool-vendored.*/**/*"
Or in package.json
:
{
"build": {
"asarUnpack": ["node_modules/exiftool-vendored.*/**/*"]
}
}
import { exiftool } from "exiftool-vendored";
const tags = await exiftool.read("path/to/image.jpg");
import { ExifTool } from "exiftool-vendored";
import path from "node:path";
const exiftool = new ExifTool({
exiftoolPath: (platform) => {
if (process.env.NODE_ENV === "development") {
const suffix = platform === "win32" ? "exe" : "pl";
return path.join(
__dirname,
"..",
"node_modules",
`exiftool-vendored.${suffix}`,
"bin",
"exiftool",
);
} else {
const resourcesPath = process.resourcesPath;
const suffix = platform === "win32" ? "exe" : "pl";
return path.join(
resourcesPath,
"app.asar.unpacked",
"node_modules",
`exiftool-vendored.${suffix}`,
"bin",
"exiftool",
);
}
},
});
// forge.config.js
module.exports = {
packagerConfig: {
extraResource: [
"./node_modules/exiftool-vendored." +
(process.platform === "win32" ? "exe" : "pl"),
],
},
};