Производитель exiftool не возвращается, когда используется в электронном приложении на Mac? - PullRequest
0 голосов
/ 21 мая 2019

На Mac, когда я запускаю свое приложение из WebStorm, exiftool-vendor-прекрасно работает. Однако, когда я собираю свое приложение (я использую Electron Builder) и устанавливаю его на том же Mac, оно никогда не возвращается, даже пытаясь получить версию:

exiftool.version().then(version => writeBreadcrumb('exif', version))

Другими словами, ошибка не возникает, и then никогда не выполняется при запуске установленной версии моего приложения, хотя он отлично работает при запуске моего приложения из WebStorm (с cd build && electron .)

Что я делаю не так? Есть ли где-нибудь пример использования exiftool-вендора в электронном приложении?

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Вам следует взглянуть на то, что в документах говорится о том, как заставить его работать с Электроном:

Как вы работаете с электроном?

Электрон общеизвестно хрупок и глючити официально не поддерживается этим пакетом.Несмотря на то, что PhotoStructure использует этот пакет в электронном виде, для его бесперебойной работы существует нетривиальное количество вспомогательного вспомогательного кода, специфичного для этого проекта.

Если вам все еще не терпится попробовать, вот несколько вещей, о которых следует помнить:

  1. Обратите внимание, что этот пакет будет запускать внешние процессы exiftool, что означает, что пакеты exiftool-vendored.pl и exiftool-vendored.exe должны быть включены в ваш asarUnpack.SmartUnpack может работать, но если он не использует шаблон, подобный node_modules/{exiftool-vendored.*}/**/*.

  2. Если вам нужен exiftool-проданный в рамках веб-просмотра, у вас будет плохойвремя.Многие вещи не будут работать из-за отсутствия совместимости узлов в электронике.

  3. __dirname во время выполнения из пакета asar после того, как веб-упаковка будет недействительной, поэтому не полагайтесь начто.

- https://github.com/photostructure/exiftool-vendored.js/wiki/FAQ#how-do-you-make-this-work-with-electron

0 голосов
/ 24 мая 2019

Поскольку я никогда не находил способ заставить exiftool-vendored работать с электроном на Mac, я принял приведенный выше ответ как по сути предупреждение о том, что следует избегать exiftool-vendored для электрона на Mac.

Этодля полноты ответа, для тех из нас, кто нуждается в exiftool в электронном приложении для Mac и Windows, ответ включен:

Я использовал node-exiftool с добавленными этими настройкамив package.json для электронного компоновщика:

"build": {
  ...
  "win": {
    ...
    "extraResources": "exiftoolwin/**/*"
  },
  "mac": {
    ...
    "extraResources": "exiftool/**/*"
  }
}

В корне моего проекта я добавил папки exiftoolwin и exiftoolexiftoolwin я помещаю exiftool.exe, который я получил, следуя инструкциям автономного исполняемого файла Windows здесь , а в папку exiftool я помещаю exiftool и lib, которые я получилИзвлечение полного дистрибутива Perl на Mac, как описано на той же странице.

Затем в моем .jsx (я использую React):

import exiftool from 'node-exiftool';
const exiftoolFolderAndFile = process.platform === 'win32' ? 'exiftoolwin/exiftool.exe' : 'exiftool/exiftool';
const exiftoolPath = path.resolve(__dirname, '../..', exiftoolFolderAndFile);
const ep = new exiftool.ExiftoolProcess(exiftoolPath);

Затем я просто использую ep как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...