nw.js 바이너리를 하위 폴더의 애플리케이션과 공유: 효율적인 배포 가이드
P粉465287592
P粉465287592 2024-01-17 08:58:39
0
1
554

그래서 다음과 같은 문제가 발생했습니다. 내 프로젝트(이 프로젝트)는 web2exe를 사용하여 번들로 제공되는 두 개의 서로 다른 nw.js 애플리케이션에 의존합니다. 하나는 설정용이고 다른 하나는 GUI가 없으며 시작 시 백그라운드에서 실행되어야 합니다. 두 번째 응용 프로그램은 또한 플랫폼별 스크립트(예: 배치 파일 또는 셸 스크립트)가 필요한 트레이 아이콘 표시 및 창 숨기기와 같은 작업을 구현하기 위해 nw를 사용합니다. 이 솔루션은 제대로 작동하지만 시스템이 트리의 일부 일반 파일에 액세스해야 하므로 실행 파일을 압축할 수 없습니다. 가능하더라도 가장 큰 파일은 dll 및 로케일 파일입니다. 두 개의 별도의 비압축 웹 애플리케이션을 추가 노드 모듈과 함께 번들로 묶으면 파일 크기가 약 800MB가 되며, 이는 내 애플리케이션으로 달성하려는 목표에 완전히 비현실적입니다.

Neutralinojs와 같은 다른 프레임워크를 사용하는 것을 고려하고 있지만 이는 코드를 다시 작성해야 하고 그 과정에서 일부 새로운 특정 기능이 손실된다는 의미입니다. 저는 두 응용 프로그램 간에 새 파일을 공유하는 데 더 관심이 있습니다. 두 번째 폴더는 첫 번째 폴더의 하위 폴더에 있습니다. 대부분의 nw 파일(실행 파일 자체 제외)은 루트 nw 디렉터리에 있는 파일과 동일합니다. 특히 nw.dll과 locales 폴더를 서로 공유하면서 크기가 약 200mb 정도 줄어들었습니다.

이 작업을 수행할 수 있는 방법을 찾고 있지만 아직까지 좋은 방법을 찾지 못했습니다. 어쩌면 여기에 내가 놓친 해결책이 있을 수도 있습니다. 내가 상상할 수 있는 또 다른 해결책은 더 작은 하위 집합을 사용하거나 기본 webview를 사용하여 새로운 것을 다시 구현하는 것입니다. 어쩌면 비슷한 것이 있을 수도 있지만 아직 찾지 못했습니다.

P粉465287592
P粉465287592

모든 응답(1)
P粉163951336

가장 쉬운 솔루션은 간단히 하나의 애플리케이션으로 결합하는 것입니다.

  1. HTML 파일 대신 JS 파일로 package.json 中的 FelizJueves 的 main 변경하세요.
  2. JS 스크립트를 백그라운드 프로세스로 만드세요. 창을 열지 말고 현재 FelizCheck에서 하고 있는 일을 하세요.
  3. 이 JS 스크립트에서 open 이벤트를 들어보세요: https://nwjs.readthedocs.io/en/latest/References/App/#event-openargs
  4. open 事件处理程序中,使用 nw.Window.open() 이벤트 핸들러에서 nw.Window.open()을 사용하여 창(FelizJueves.html)을 표시합니다. 이 이벤트는 누군가가 이미 실행 중인 애플리케이션을 시작하려고 하면 시작됩니다. 따라서 첫 번째 실행에서는 배경 검사기가 시작됩니다. 두 번째로 시작하면 UI 창이 나타납니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿