2017-12-16 31 views
1

나는 electron-webpack 상용구에서 시작하는 전자 응용 프로그램을 구축 중입니다.전자 응용 프로그램에서 ffmpeg을 묶을 수있는 방법

이 노드 모듈 @ffmpeg-installer/ffmpeg/node_modules 디렉토리에 호환 가능한 사전 컴파일 된 바이너리를 설치 한 다음 해당 실행 파일의 경로를 통해 액세스 할 수있게합니다.

const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path 

이 개발하는 동안 잘 작동하지만 난 배포를 구축하고 실행할 때 경로로 자식 프로세스를 생성 할 때 오류가 생긴다. 아마도 경로는 바이너리를 가리 키지 않기 때문입니다.

배포 가능 패키지를 실행할 때 경로가 다음과 같이 설정됩니다. AppName.app 패키지 내용에서 볼 때

/Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg 

그러나, 나는 다음과 같은 경로에있는 바이너리를 찾을 수 있습니다.

/Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar.unpacked/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg 

어떻게 electron-webpackelectron-builder를 사용하여 전자 응용 프로그램에서 이진 종속 관계를 포함해야합니까?

답변

2

전자가 asar 아카이브 (zip/tar/jar와 같은 것)에서 앱을 묶을 가능성이 높습니다. 따라서 실행 파일의 경로를 확인할 수 없습니다. asar: falseelectron-builder (electron-builder.json)으로 전달합니다.

+0

이 작동하지만 ASAR이 작동하지 않는 이유를 알고 싶습니다. 기본 'asarUnpack'옵션 때문입니까? –

+0

'as asar 아카이브를 사용한 패키징을 사용할 수 없습니다. 강력하게 권장하지 않습니다. 외부에서 사용할 수 있어야하는 파일을 압축 해제하려면 asarUnpack을 사용하고 asarUnpack을 사용하십시오. ' –

+0

@JoshuaBarnett'asarUnpack'/'smartUnpack' 옵션이 새로운 것 같습니다. 만약 당신이 그것을 작동 시키면, 이것은 더 나은 선택처럼 보입니다 - 저는'asar : false'를 사용하기를 꺼 렸습니다. –