node-ffprobe-installer
node-ffprobe-installer copied to clipboard
Requiring package via variable breaks package
My operating environment is as follows: macOS 11.23 electron 13.0.1
Run the following code in the main process of electron:
const FfmpegCommand = require('fluent-ffmpeg');
import {path as ffmpegPath} from'@ffmpeg-installer/ffmpeg';
command = new FfmpegCommand({
source: item.m3u8
});
command.setFfmpegPath(ffmpegPath)
node reported an error: not find XXXXX XXXX is the value of npm3Package
After testing, it is caused by the use of variables in require, In line 35 of the file @ffmpeg-installer/ffmpeg/index.js: packageJson = require(npm3Package); I modified it to: packageJson = require(''+npm3Package); The program can run normally, so...
Which node version are you using? I can't replicate this myself.
Electron : 13.1.9
I am not using a pure nodejs environment But in the Electron environment
import ffmpegCommand from 'fluent-ffmpeg' import {path as ffmpegPath} from '@ffmpeg-installer/ffmpeg' new ffmpegCommand({ source: filePath });

After I changed it to this, no error will be reported and it can run normally
if (verifyFile(npm3Binary)) {
ffmpegPath = npm3Binary;
packageJson = require('@ffmpeg-installer/'+platform + (os.platform() === 'win32' ? '\\' : '/') + 'package.json');
//packageJson = require(npm3Package);
}
After I changed it to this, no error will be reported and it can run normally
if (verifyFile(npm3Binary)) { ffmpegPath = npm3Binary; packageJson = require('@ffmpeg-installer/'+platform + (os.platform() === 'win32' ? '\\' : '/') + 'package.json'); //packageJson = require(npm3Package); }
Thanks. Can you PR?