node-ffprobe-installer icon indicating copy to clipboard operation
node-ffprobe-installer copied to clipboard

Requiring package via variable breaks package

Open zhuyifang opened this issue 4 years ago • 4 comments

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...

zhuyifang avatar Jun 15 '21 12:06 zhuyifang

Which node version are you using? I can't replicate this myself.

SavageCore avatar Aug 04 '21 03:08 SavageCore

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 });

image

zhuyifang avatar Aug 12 '21 05:08 zhuyifang

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);
}

zhuyifang avatar Aug 12 '21 05:08 zhuyifang

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?

SavageCore avatar Jul 27 '24 03:07 SavageCore