Перенесенный пакет веб-пакетов не экспортирует имя пакета через дефис через требование

Я импортирую fluent-ffmpeg с: import ffmpeg from 'fluent-ffmpeg' в один файл.

После запуска webpack я получаю эту ошибку: Uncaught Exception: ReferenceError: fluent is not defined

Я заглянул в транспилированный файл и обнаружил, что fluent-ffmpeg включено вот так: function(e,t){e.exports=fluent-ffmpeg}

После изменения строки на: function(e,t){e.exports=require("fluent-ffmpeg")} программы работают.

Есть ли способ настроить веб-пакет, чтобы он правильно требовал fluent-ffmpeg при транспиляции?

Изменить: я использую этот шаблон электронной реакции веб-пакета для создания настольного приложения - https://github.com/chentsulin/electron-react-boilerplate

Обновление: я создал репозиторий, чтобы показать ошибку — https://github.com/the4dpatrick/congenial-barnacle. Разницу между electron-react-boilerplate и этим репозиторием можно увидеть в одна фиксация

Чтобы увидеть ошибку:

  • npm i
  • упаковка электронного приложения (npm run package)
  • открытие приложения, которое находится в каталоге выпуска.
  • Оповещение открывается с ошибкой

person Patrick    schedule 29.05.2016    source источник
comment
вы закрываете отверстие '? то есть import ffmpeg from 'fluent-ffmpeg'   -  person Mauricio Poppe    schedule 29.05.2016
comment
Да и даже изменение строки на const ffmpeg = require("fluent-ffmpeg") приводит к тому же. Изменить: в вопросе у меня только что была опечатка, где я пропустил завершающий '   -  person Patrick    schedule 29.05.2016
comment
Webpack — это сборщик модулей на стороне клиента, даже если вам удастся создать пакет, он не будет работать в браузере, поскольку fluent-ffmpeg использует модули os и child_process узла, я прав?   -  person Mauricio Poppe    schedule 29.05.2016


Ответы (1)


Мне удалось решить проблему, просто установив для файла output.libraryTarget настройки within webpack.config.electron.js значение commonjs2.

output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    libraryTarget: 'commonjs2'
  },

Для получения дополнительной информации читайте: chentsulin/electron-react-boilerplate#232

person Patrick    schedule 30.05.2016
comment
где файл webpack.config.electron.js должен быть размещен? можно ли установить это в webpack.config.base.js ? - person crak; 12.06.2017