node.js 웹앱을 일반 데스크톱 앱으로 패키징 [닫힘]


86

조금 검색했지만 기존 도구를 찾을 수 없습니다.

나는 당신을 위해 멋진 일을하는 자신의 컴퓨터에서 실행되도록 설계된 node.js 웹 서버를 가지고 있습니다. MySnazzyThing.appnodejs와 npm을 설치 node mysnazzyapp.js하고 명령 줄에서 실행하는 대신 두 번 클릭 할 수 있다면 꽤 멋질 것 입니다.

.app실행 파일은 노드 서버를 스풀하고 정상적으로 일 것입니다 무슨 보여줄 것입니다 간단한 기본 웹킷 창을 열 것이라고 localhost:3000내가 명령 행에서 실행 된 경우입니다.

이 기본 앱은 예를 들어 Mac 앱 스토어를 통해 배포 될 수 있습니다. 그리고 node.js 데스크톱 앱인 bam.

그러한 도구가 있습니까? 아니면 제가 상상 한대로 작동하지 않는 기술적 이유가 있습니까?

답변:



91

옵션 1 : 전자 (일명 원자-쉘)

이것은 github의 Atom 편집기가 사용하는 쉘입니다. node-webkit과 매우 유사하지만 스크립트를 먼저 실행하고 사용자에 대한보기 / 창을 만들어야합니다. 다른 사소한 차이점이 있지만 살펴볼 가치가 있습니다.


옵션 2 : NW.js 이전의 node-webkit

요점은 기본적으로 노드의 확장 개체 모델 및 모듈을 지원하는 웹 기반 앱을 작성하기 위해 JS 엔진을 확장한다는 것입니다. .nw 확장자)를 사용하여 실행하고 nw (.exe) .. Windows, Mac 및 Linux 빌드를 사용할 수 있습니다.


옵션 3 : Node.js의 Carlo chrom (ium) 셸

이렇게하면 로컬에서 실행중인 서버 애플리케이션에 연결할 수있는 셸로 로컬에 설치된 Chrome을 시작할 수 있습니다. 로컬 크롬이 필요하지만 요청한 것과 매우 유사합니다.


옵션 4 : MacGapNode (OSX 전용)

노드 통합이있는 MacGap (부실화되는 것 같습니다)


곁에 : 서비스 ...

.App으로 OSX를 말할 수는 없지만 NodeJS에 백그라운드 서비스 설치를 생성하고 데스크탑의 "로컬"사이트에 대한 링크를 생성하는 것은 가능할 수 있습니다. 대부분의 브라우저에는 모든 기능을 표시하지 않는 옵션이 있습니다 (특히 firefox가 표시한다는 것을 알고 있습니다).

귀하의 질문은 특히 OSX에 대한 것임을 알고 있지만 Windows에서는 NSSM을 사용하여 모든 것을 서비스로 실행할 수 있으며 Windows의 NodeJS 기반 서비스에 사용했습니다. 위의 다른 옵션 중 일부는 필요에 따라 더 좋습니다.


제거됨 :


이 답변은 여러 질문에 대해 복사되었으며 이러한 참조는 대부분 업데이트 편의를위한 것입니다.


OSX 및 Linux의 경우 github.com/crcn/nexe 도 솔루션처럼 보입니다.
robocat 2013 년

node-webkit이 이들 중 승자 인 것 같습니다. 대규모 개발자 기반, 훌륭한 문서, 인텔 지원.
Dan

gerty, 감사합니다 ... nexe를 포함하도록 내 답변을 업데이트했으며 node-webkit을 최고의 자리로 만들었습니다 ... appjs가 약간 부실한 ​​것처럼 보입니다.
Tracker1

OSX 체크 아웃 Macgap의 경우 앱 스토어에 제출할 수 있습니다. 노드 웹킷은 향후 잠재적으로 오래된 API를 사용하기 위해 거부됩니다.
Michael J. Calkins

흠, 이제 아이디어가 있습니다. 백그라운드에서 앱을 서버로 실행 한 다음 브라우저 창을 엽니 다 (예 : 창 프레임이나 탭 / 주소 표시 줄이없는 브라우저를 시작하려면 어떻게해야합니까? ). 그런 방식으로 창을 많이 제어 할 수는 없습니다 (예 : 브라우저가 파일, 편집,보기 등과 같은 메뉴 항목을 처리하고 사용자는 여전히 브라우저의 인쇄, 확대 / 축소 및 인 페이지와 같은 항목에 액세스 할 수 있음) 검색 기능), 기본적으로 추가 프레임 워크가 필요하지 않습니다.
Ajedi32

8

저는 Topcube를 살펴볼 것을 제안합니다. 그 목표는 "노드 개발자에게 GUI 플랫폼으로 HTML5 + CSS3를 사용하여 노드 서버에 데스크탑 GUI를 제공하는 방법을 제공하는 것"입니다. github의 Topcube .


1
Topcube는 더 이상 지원되지 않는 것 같습니다
Shamoon 2011

예, 티타늄을 살펴 보는 것이 좋습니다. Node.js는 아니지만 JS 기반이며 PC 및 모바일 애플리케이션 개발을위한 크로스 플랫폼입니다. appcelerator.com/products/…
Brian Heese 2011

그 티타늄 링크가 썩었습니다. 나는 이것이 당신이 언급하는 것이라고 생각합니다.
Grumdrig 2012

참고 : Titanium 데스크탑 부품은 더 이상 개발 / 지원되지 않습니다.
Sri Kadimisetty

1
Titanium Desktop 개발은 새로운 개발자 그룹에 의해 인수되었습니다. tidesdk.org
Motin

-1

현재이를 수행하는 방법에는 여러 가지가 있습니다.

노드 + html5 앱 패키징 분야에서 확실한 승자는 현재 Electron입니다 (Atom, VSCode, Slack, Discord 등에서 사용).

또한 앱으로 패키지 된 다른 언어 (해당 언어 / 스택 용 도구 사용)를 사용하고 노드 설치를 확인하고 노드로 "서버"스크립트를 시작한 다음 기본 브라우저 (또는 일부 웹보기 구성 요소를 사용하여 다른 수단), 마지막으로 위치를 노드 서비스로 설정하십시오. 이것은 매우 가볍고 효율적인 방법이지만 Electron과 같은 솔루션으로 OS와 잘 통합되지는 않습니다.

여기서 Electron의 주요 경쟁자는 NW.js입니다. 내가 말할 수있는 한, NW.js의 주요 기능은 Electron이 (아직) 가지고 있지 않은 것은 컴파일 / 난독 화입니다. Electron은 자동 업데이트를 쉽게 만듭니다.

https://electron.atom.io/ https://nwjs.io/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.