정말 애정하고 있고, 미래에도 가치 있게 쓰일 라이브러리? 스택? 인 electron을 다시 손보게 됐다.
기존에 만들었던 프로그램의 업데이트 및 업그레이드를 위해서 electron 문서를 다시 정독해 보면서 Windows -> Linux로 크로스 컴파일링을 시도하는 삽질과 스토리를 써 내려가겠다.
https://www.electronjs.org/docs/latest/
1. electron-forge설치
electron에서 컴파일링 및 패키징을 지원하는 라이브러리는 많지만 공식 홈페이지에서 추천하는 라이브러리는 electron-forge다
그러므로 해당 코드를 실행해 보자
npm install --save-dev @electron-forge/cli
npx electron-forge import
그러면 package.json에 해당 코드들이 생성되면서 make 할 준비가 된 것이다.
// package.json
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
하지만 우리의 목표는 Windows -> Linux 크로스 컴파일이므로 다음 챕터를 향해 나아가보자.
Make 도중에 node-gyp관련 오류가 생길 경우 해당 글을 참조
2. WSL 설치
마소의 공식 document를 보면 WSL 설치 관련해서 자세하게 설명이 되어 있다.
https://learn.microsoft.com/ko-kr/windows/wsl/install
추가적으로 만약 powershell이 맘에 안 들 경우
제어판의 -> 프로그램 -> Windows 기능 켜기/끄기 에서 Hyper-V 관련 사항들을 체크표시 해주면 된다.
재부팅 ㄱㄱ
여담이지만 Docker설정과 유사하다.
3. Microsoft Store에서 Ubuntu 설치
-> 윈도우 버튼을 누른 뒤 microsoft Store를 검색
-> Ubuntu 검색 후 설치
4. Ubuntu 실행
실행을 하면 아이디와 패스워드를 입력하고 기존 linux커널이 실행되듯이 사용할 수 있다.
이제 WSL에서 컴파일을 위한 작업을 진행해 보자
작업의 순서에 맞는 명령어들을 차례대로 나열하니 잘 보고 에러가 난다면 아래 에러모음집에서 보고 다시 해보길 바란다
sudo apt-get update
sudo apt-get upgrade
// nvm install
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
// nvm activate
source ~/.bashrc
// nvm version check
nvm -v
// node v16.10.0 install
nvm install 16.10.0
// open Linux directory on Windows
explorer.exe .
// 작업할 파일을 윈도우 -> 리눅스 폴더로 복붙
// install dpkg, fakeroot
sudo apt-get install dpkg fakeroot
// install rpm
sudo apt-get install rpm -y
// install cpp
sudo apt-get install build-essential
// run make
npm run make
여기서부터 엄청난 오류들이 있는데 각각 해당하는 오류가 있는지 보고 체크하길 바란다.
Error: Cannot make for deb, the following external binaries need to be installed: dpkg, fakeroot
Error: Cannot make for rpm, the following external binaries need to be installed: rpmbuild
Error: node-gyp failed to rebuild ~
Error Code
fakeroot, while creating message channels: Function not implemented
fakeroot: error while starting the `faked' daemon.
해당 에러는 여기서 참조 바란다
5. 결과
결과적으로는 electron-forge가 잘 작동하면서
out폴더 아래에 크로스컴파일 아닌 크로스컴파일 결과물이 잘 나와있다!!!
앞으로 더 많은 기능과 활용을 할 수 있을 것 같다.
ex) electron을 활용한 미니보드 제어, 데스크톱 앱을 이용한 마이크로 서비스 등등
더 완성도 높은 서비스가 아닌 더 다양하고 도전적인 서비스를 만들고 싶다.
이 글을 보는 모두에게 행운이 가득하길
'Study & Project ✏️ > electron 🐣' 카테고리의 다른 글
[라즈베리파이 크로스컴파일] electron 라즈베리파이 앱 개발 프로젝트 완성! 2022예비창업패키지 (0) | 2022.01.27 |
---|---|
[라즈베리파이 크로스컴파일] electron 앱 개발 중 textarea에서 serial data read 문제 발견! 그리고 해결 (0) | 2022.01.26 |
[라즈베리파이 크로스컴파일] electron Node.js serialport 첫 번째 시련 해결! (0) | 2022.01.26 |
[라즈베리파이 크로스컴파일] electron 앱 개발중 Node.js serialport에서 첫 번째 시련 (0) | 2022.01.20 |
[라즈베리파이 크로스컴파일] electron을 이용한 앱 개발일지 (2) | 2022.01.18 |