Node.js 스크립트에 적합한 hashbang
여러 환경에서 작동하는 node.js용 스크립트를 만들려고 합니다.특히 저는 OS X와 우분투를 오가고 있습니다.전자에서 노드는 다음과 같이 설치됩니다.node
, 그러나 후자에서는.nodejs
. 스크립트의 맨 위에는 다음과 같은 내용이 있습니다.
#!/usr/bin/env node
아니면
#!/usr/bin/env nodejs
명령어를 지정하는 대신 노드가 설치되어 있는 한 스크립트를 실행 파일로 실행하는 것이 좋습니다(./script-name.js
대.node script-name.js
).
node.js에 대해 백업 해시뱅 또는 두 경우 모두 호환되는 해시뱅을 지정할 수 있는 방법이 있습니까?
만약 당신의 스크립트가 노드 개발자들에 의해 사용될 의도라면, 당신은 절대적으로 단지
#!/usr/bin/env node
Node만 설치된 사용자와 호환성을 시도하지 않습니다.nodejs
.
근거:
- 쿨한 아이들이 하는 일이고, 당신도 하지 않으면 당신은 쿨하지 못합니다.jshint, 카르마, bower, 심지어 npm과 같은 주요 노드 프로젝트는 단순히 다음을 사용합니다.
#!/usr/bin/env node
그들의 실행 가능한 대본에 대한 셰뱅으로서 말입니다. - 멋진 아이들이 하고 있기 때문에 우분투에서 노드와 함께 일하는 사람들은 누구든지
/usr/bin/node
에 대한 상징으로서nodejs
. Stack Overflow 및 웹 전역에서 이 작업을 수행하는 방법에 대한 설명이 자세히 나와 있습니다.심지어는.nodejs-legacy
당신을 위해 이 symlink를 만드는 것이 목적인 패키지.Node를 사용하는 사람들은 Ubuntu에서 이 문제를 해결하는 방법을 알고 있으며, Node에서 작성된 소프트웨어를 거의 사용하고 싶다면 사용해야 합니다. - Ubuntu 14.04에서는 문제가 더 이상 존재하지 않는 것 같습니다. 방금 노드를 제거하고 실행했습니다.
apt-get install nodejs
그리고 그것은 창조했습니다./usr/bin/node
에 대한 상징으로서/etc/alternatives/node
. 이 문제로 고통 받는 사람들은 줄어드는 소수라고 생각합니다.
노드를 읽고 쓸 수 있는 사람들을 목표로 삼는다 하더라도#!/usr/bin/env node
, 아마도 수동 symlink 생성 또는 설치에 대한 가능한 필요성을 추가합니다.nodejs-legacy
필요하다고 판단되는 경우 설치 설명서에 패키지를 제공합니다.만약 누군가와 함께 있다면nodejs
그러나 그렇지는node
위의 shebang을 사용하여 프로그램을 실행할 수 있습니다. 그러면 다음을 확인할 수 있습니다.
/usr/bin/env: 노드:해당 파일이나 디렉토리가 없습니다.
구글 검색을 통해 첫 번째 결과와 첫 페이지에서 여러 번 수정할 수 있습니다.
가 으로, 가, 를, 할 등이 있는 를 실행할 수 합니다.nodejs
가능하지만할수만만수snode
여기서음는))node
실제로는 아마추어 패킷 무선 노드 프로그램), 그러면 유닉스 & 리눅스 스택 익스체인지에서 가져온 이 "두 줄 쉐방"을 사용할 수 있습니다.
#!/bin/sh
':' //; exec "$(command -v nodejs || command -v node)" "$0" "$@"
console.log('Hello world!');
노드 세계에서 거의 아무도 없는 상황에서 꼭 이렇게 해야 합니까?
언급URL : https://stackoverflow.com/questions/20638520/appropriate-hashbang-for-node-js-scripts
'programing' 카테고리의 다른 글
STDOUT을 PHP의 파일로 리디렉션하는 방법? (0) | 2023.09.11 |
---|---|
.apk 패키지 내의 AndroidManifest.xml 파일을 구문 분석하는 방법 (0) | 2023.09.11 |
jQuery Data() API를 사용하여 데이터 속성을 설정할 수 없습니다. (0) | 2023.09.06 |
JUNIT-Spring @Asyncvoid 서비스 방법 (0) | 2023.09.06 |
jquery를 한 기능이 끝날 때까지 기다렸다가 다른 기능을 실행하려면 어떻게 해야 합니까? (0) | 2023.09.06 |