Node.js 애플리케이션을 단일 실행 파일로 배포하려면 어떻게 해야 합니까?
제가 Node.js 애플리케이션을 작성했다고 가정하고, 이제 배포하려고 합니다. Node Node.js를 합니다.npm install
으로 입력해주세요. 입합니다력로으를 합니다.node app.js
.
제가 선호하는 것은 단일 실행 파일, 예를 들어.exe
파일을 저장합니다.
어떻게 접근해야 할까요?
이 스레드에 대해 알고 있습니다. 어쨌든 Windows에 대한 내용입니다.플랫폼 독립적인 방식으로 이를 달성하려면 어떻게 해야 합니까?아이디어 있어요?모범 사례? ...?
완벽한 솔루션은 소스 폴더를 제공할 수 있는 "컴파일러"였습니다.한 앱 되어 있습니다..js
일파,node_modules
및 메타데이터:package.json
출력은 Windows, OS X 및 Linux와 같은 다양한 플랫폼의 바이너리여야 합니다.
아, 그리고 중요한 것은:소스 코드를 변경하고 싶지 않아 다음으로 전화합니다.require
이제 이 상대 경로가 패키지 앱 내부에 있더라도 상대 경로는 계속 작동해야 합니다.
아이디어 있어요?
PS: 사용자가 Node.js를 개별적으로 설치하는 것을 원하지 않습니다. 실행 파일 안에도 포함되어야 합니다.
그 동안 저는 (저에게) 완벽한 솔루션인 nexe를 찾았습니다. nexe는 모든 모듈을 포함하는 Node.js 애플리케이션에서 단일 실행 파일을 생성합니다.
이상적인 해결책 다음으로 좋은 방법입니다.
먼저, 워크샵, 데모 등을 위해 Node.js 앱을 패키징하는 것에 대해 이야기하고 있습니다. 여기서는 최종 사용자가 설치 및 종속성에 신경 쓸 필요 없이 앱을 "그냥 실행"하는 것이 편리합니다.
다음 설정을 시도할 수 있습니다.
- 앱 소스 코드 가져오기
npm install
package.json을 통해 로컬 node_dll 디렉토리에 대한 모든 종속성.이진 종속성의 경우 개별적으로 지원할 각 플랫폼에서 이 단계를 수행하는 것이 중요합니다.- Node.js 이진 노드를 복사합니다.(아마도) /usr/local/bin/node(OS X/Linux의 경우)를 프로젝트의 루트 폴더에 추가합니다.OS X/Linux에서 Node.js 이진 파일의 위치를 찾을 수 있습니다.
which node
.
Windows 경우)
자체 압축 풀기 아카이브를 생성합니다. 7zip_http는 압축 풀기 직후 명령을 실행하는 방법을 지원합니다. http://www.msfn.org/board/topic/39048-how-to-make-a-7-zip-switchless-installer/ 을 참조하십시오.
OS X/리눅스 파일:
makeelf 또는 unzipsfx와 같은 도구를 사용할 수 있습니다(기본적으로 정의된 CHAPE_SFX_AUTORUN으로 컴파일되었는지 모르겠습니다).
디렉토리에 합니다( " " " " " " " " " " " " " " " " " " " " " " " "node app.js
모든 파일을 제거합니다.
죽은 사람을 이기는 것이 아니라, 당신이 설명하는 솔루션은 노드 웹킷과 많이 비슷합니다.
Git 페이지에서:
node-webkit는 크롬과 node.js를 기반으로 하는 앱 런타임입니다.노드 웹킷으로 HTML 및 JavaScript로 네이티브 앱을 작성할 수 있습니다.또한 DOM에서 직접 Node.js 모듈을 호출할 수 있으며 모든 웹 기술로 기본 응용프로그램을 작성하는 새로운 방법을 사용할 수 있습니다.
이러한 지침에서는 사용자가 실행할 수 있는 단일 파일 앱의 생성에 대해 자세히 설명하며, 이 부분에서는 외부 종속성에 대해 설명합니다.
정확한 해결책인지는 모르겠지만, 꽤 가까운 것 같습니다.
도움이 되길 바랍니다!
JXcore를 사용하면 Windows, Linux 또는 Mac OS X의 모든 종속성을 포함하여 모든 nodejs 응용 프로그램을 단일 실행 파일로 변환할 수 있습니다.
다음은 설치 프로그램에 대한 링크입니다. https://github.com/jxcore/jxcore-release
다음은 설정 방법에 대한 링크입니다. http://jxcore.com/turn-node-applications-into-executables/
매우 사용하기 쉽고 Windows 8.1과 Ubuntu 14.04 모두에서 테스트했습니다.
참고로 JXcore는 노드의 포크입니다.JS 즉, 100% 노드입니다.JS 호환, 몇 가지 추가 기능 포함.
nexte 외에도 browserify를 사용하여 모든 종속성을 하나로 묶을 수 있습니다..js
파일. 이것은 실제 노드 실행 파일을 번들하지 않고 javascript 쪽만 처리합니다.네이티브 모듈도 처리하지 않습니다.은 순수노위을명한옵같다다니습과음입니다.browserify --output bundle.js --bare --dg false input.js
.
설치 프로그램을 만들려면 여러 단계를 거쳐야 하며 운영 체제마다 다릅니다.예:
- 의 경우 Mac OS X 파일을 .
.pkg
이 작업을 수행하는 방법에 대한 지침이 여기에 있습니다. https://coolaj86.com/articles/how-to-create-an-osx-pkg-installer.html - 에서는 Ubuntu Linux를 .
.deb
이 작업을 수행하는 방법에 대한 지침이 여기에 있습니다. https://coolaj86.com/articles/how-to-create-a-debian-installer.html - Windows를 해야 합니다.
.exe
또는.msi
innosetup instra를 사용하는 방법에 대한 지침은 여기에 있습니다: https://coolaj86.com/articles/how-to-create-an-innosetup-installer.html
Git repo를 생성하고 노드 Git repo에 대한 링크를 종속성으로 설정할 수 있습니다.그런 다음 레포를 복제하는 모든 사용자가 노드를 설치할 수 있습니다.
#git submodule [--quiet] add [-b branch] [-f|--force]
git submodule add /var/Node-repo.git common
어디선가 호스팅한 Git repo를 자동으로 복제하고 하나의 스크립트 파일에서 "설치"하기 위해 스크립트를 쉽게 패키지화할 수 있습니다.
#!/bin/sh
#clone git repo
git clone your-repo.git
언급URL : https://stackoverflow.com/questions/14314038/how-do-i-deploy-node-js-applications-as-a-single-executable-file
'programing' 카테고리의 다른 글
도커-다운로드 default_network 오류 (0) | 2023.08.22 |
---|---|
실행 파일이 잘못된 사용 권한으로 서명되었습니다. (0) | 2023.08.22 |
Angular2에서 이미지를 제공하는 방법은 무엇입니까? (0) | 2023.08.22 |
엑셀의 INDEX 함수가 배열을 반환할 수 있습니까? (0) | 2023.08.22 |
로깅 수준 설정 (0) | 2023.08.22 |