2012-06-12 6 views
15

개발자가 개발 환경을 관리하는 데 사용하는 일련의 터미널 명령에 대한 인터페이스를 만들고 싶습니다. node.js에서 빌드하려고합니다.Node.js 응용 프로그램을 osx 응용 프로그램으로 패키지화

이제 express로 HTML5/CSS3/JS 응용 프로그램으로 만들 수 있다고 생각합니다. 그런 다음 기본 osx 응용 프로그램으로 패키지하고 싶습니다. 의미, 그냥 보낼 수있는 응용 프로그램, 그들은 두 번 클릭하고 실행하지만 크롬 브라우저를 시작하고 스크립트를 누르거나 단순히 서버를 시작하고 사용자에게 URL로 이동하도록 지시하는 localhost : port 서버로 이동합니다. . 어쨌든 괜찮습니다.

여러 가지를 구성하고 실행중인 헤드없는 VM과 상호 작용할 수 있으려면 로컬 시스템에 액세스해야하기 때문에이 작업을 수행하고 있습니다. 그래서 나는 이것을 단순히 서버에서 제공하고 사이트를 방문하게 할 수는 없습니다.

아이디어가 있으십니까?

는 소스에서 node.js를 컴파일 할 경우,

루이스

+0

이 실제로 .APP 패키지해야합니까? 그렇지 않다면 모든 실행 작업을 수행하는 쉘 스크립트를 작성하고 MyApp.command를 호출하여 zip 파일 또는 dmg 또는 기타 소스에있는 노드의 로컬 빌드 및 소스와 함께 패키징하는 것이 더 간단 할 수 있습니다. .app 일 필요가있는 경우 가장 간단한 솔루션은 JS 스크립트를 직접 실행하기 만하면되므로 js 코드를 작성하여 사용자를 위해 브라우저를 시작해야합니다 (그다지 어렵지는 않음). .app 일 필요가 있고 JS를 수정할 수없는 경우 맞춤 .app 래퍼를 만들어야합니다. 그래서, 당신은 무엇을 원합니까? – abarnert

+1

추 신 : py2app와 같은 node.js는 아직 없지만 중간 솔루션을 쉽게 만듭니다. 내가 이해할 수있는 한, http://appjs.org/이 시점에서 가장 유망한 옵션이지만 현재 릴리스는 Mac에서 작동하지 않습니다 ... 그래서 당신은 여전히 ​​작업의 좋은 거래를해야합니다 이론적으로는 "쉬운"방법입니다. – abarnert

+0

PPS 인 경우 https://groups.google.com/group/nodejs/browse_thread/thread/f90b3f1c747d20b3도 참조하십시오 (사용자의 기본 브라우저를 실행하는 대신 WebKit GUI를 앱에 번들하는 방법에 대해 자세히 설명되어 있음). – abarnert

답변

2

감사 lib 폴더가 바이너리에 포함됩니다 노드에서 자바 스크립트 파일마다. 같은 방식으로 코드를 바이너리에 저장할 수 있습니다.

나는 Mac OSX 패키지가 어떻게 만들어 지는지에 익숙하지 않지만 결국에는 very hard 인 것 같지 않습니다. 커스텀 노드 바이너리를 하나로 묶으십시오.

3

체크 아웃 AppJS : http://appjs.com/ -

좋은 경기 : 여기

+3

https://twitter.com/appjs/status/394911856910823424 - appjs는 https://github.com/rogerwang/node-webkit에 의해 대체되었습니다. –

7

같은 소리 "HTML, CSS 및 자바 스크립트를 사용하여 Linux, Windows 및 Mac 용 데스크톱 응용 프로그램을 빌드는"주제에 스크린 캐스트 + 작성자의 설치 프로그램 (가 .pkg)의 다음 .APP에 관해서는

How to create an OS X pkg for NodeJS apps

, 잘 모르겠어요 아직,하지만 난 흔적에 뜨거운입니다. 또한

:

7

옵션 1 : electron (일명 원자 셸)

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


옵션 2 : NW.js 이전 노드 웹킷

요점은 기본적으로 ... 당신을 당신이 노드의 확장 된 개체 모델을 지원하는 웹 기반 응용 프로그램을 작성하기위한 JS 엔진을 확장 및 모듈이다 package.json의 start.html 모듈과 js 파일을 .nw 확장자를 가진 zip에 패키징하고 nw (.exe)를 사용하여 실행하십시오. Windows, mac 및 Linux 빌드를 사용할 수 있습니다.


옵션 3 : Thrust (Node Adapter)

이것은 정말 발사 응용 프로그램에 대한 IPC 채널과 웹킷/크롬 주위에 바인딩 잃을 수 있습니다. 메시지 채널을 사용하거나 노드에서 더 전통적인 서버 측 응용 프로그램으로 응용 프로그램을 작성하고 창 실행을 제어 할 수 있습니다. 어느 쪽이 좋을지도 모릅니다.

추력은 여러 언어에 대한 바인딩을가집니다. MacGapNode보다 우선해야합니다. 왜냐하면 먼저 크로스 플랫폼 옵션을 선호하기 때문입니다.


4 옵션 : MacGapNode은 (OSX 만 해당)

는 노드 통합 MacGap


제외 (오래된 받고있는 것으로 보인다) 서비스를 ...

나는 '수 .App로 이것을 OSX에 대해 말하십시오.하지만 NodeJS에 백그라운드 서비스 설치를 만들고 데스크톱의 "로컬"사이트에 대한 링크를 만들 수 있습니다. 대부분의 브라우저에는 모든 기능을 표시하지 않는 옵션이 있습니다 (특히 Firefox가 아는 기능 임).

당신의 질문은 특히 OSX에 관한 것이지만 Windows에서는 NSSM을 사용하여 서비스를 실행할 수 있으며 Windows의 NodeJS 기반 서비스에 사용했습니다. 위의 다른 옵션 중 일부는 사용자의 요구에 따라 더 좋습니다.


는 제거 :

  • nexe - 오래된/관리되지 않는
  • AppJS - 오래된 웹 사이트 오프라인
  • -
  • DeskShell DeskShell로 대체 -NW.js에 위임 됨
  • XULRunner 프로젝트가 지연되었으며, 상당히 뒤떨어졌습니다.
  • 이 대답은 여러 질문에 대한 복사

, 이러한 참조는 편의를 업데이트하는 대부분이다.

관련 문제