>  Q&A  >  본문

nw.js 바이너리를 하위 폴더의 애플리케이션과 공유: 효율적인 배포 가이드

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

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

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

P粉465287592P粉465287592276일 전470

모든 응답(1)나는 대답할 것이다

  • P粉163951336

    P粉1639513362024-01-18 00:16:15

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

    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 창이 나타납니다.

    회신하다
    0
  • 취소회신하다