code

Node.js 스크립트에 대한 적절한 해시 뱅

codestyles 2020. 11. 15. 11:20
반응형

Node.js 스크립트에 대한 적절한 해시 뱅


여러 환경에서 작동하는 node.js 용 스크립트를 만들려고합니다. 특히 저에게는 OS X와 ​​Ubuntu를 앞뒤로 전환하고 있습니다. 전자에서는 Node가로 설치 node되지만 후자의 경우에는 nodejs. 내 스크립트 맨 위에 다음이있을 수 있습니다.

#!/usr/bin/env node

또는

#!/usr/bin/env nodejs

노드가 설치되어있는 한 두 환경 중 하나가 명령을 지정해야하는 것보다 스크립트를 실행 파일로 실행하는 것이 좋습니다 ( ./script-name.jsvs. node script-name.js).

백업 해시 뱅을 지정하는 방법이나 node.js에 대해 두 경우 모두 호환되는 해시 뱅을 지정하는 방법이 있습니까?


스크립트가 Node 개발자를위한 것이라면 절대적으로

#!/usr/bin/env node

Node 만 .NET Framework로 설치 한 사람들과의 호환성을 위해 노력하지 않아도됩니다 nodejs.

이론적 해석:

  • 멋진 아이들이하는 일이고, 당신도 그렇게하지 않으면 당신은 멋지지 않습니다. jshint , karma , bower , 심지어 npm같은 주요 노드 프로젝트 #!/usr/bin/env node는 실행 가능한 스크립트의 shebang으로 사용 됩니다.
  • 시원한 아이가 그 일을하고 있기 때문에, 우분투에 노드와 함께 작동 누구든지를 설정 한 /usr/bin/node에 심볼릭 링크로 nodejs. 있다 높은 볼 지시 스택 오버플로 여기에이 일에, 그리고 모든 웹을 통해. nodejs-legacy전체 목적이이 심볼릭 링크를 만드는 것이 목적인 패키지 도있었습니다 . 노드를 사용하는 사람들은 우분투에이 문제를 해결하는 방법을 알고, 그들은 해야 그들이 거의 어느 노드에 기록 된 소프트웨어를 사용하려는 경우.
  • 문제는 우분투 14.04에서 더 이상 존재하지 않는 것 같습니다. 방금 Node를 제거하고을 실행 했으며에 대한 심볼릭 링크로 apt-get install nodejs생성 /usr/bin/node되었습니다 /etc/alternatives/node. 이 문제로 고통받는 사람들은 줄어들고있는 소수 인 것 같습니다.

노드 문맹 사용자를 대상으로하는 경우에도를 사용할 #!/usr/bin/env node수 있습니다. 필요할 경우 수동 심볼릭 링크 생성 또는 nodejs-legacy패키지 설치에 대한 가능한 필요성을 설치 문서에 추가 할 수 있습니다. 사용 가능 nodejs하지만 node사용할 수 없는 누군가가 위의 shebang으로 프로그램을 실행하려고하면 다음과 같이 표시됩니다.

/ usr / bin / env : node : 해당 파일 또는 디렉토리 없음

그리고 인터넷 검색 은 첫 번째 결과에서 수정을 제공하고 첫 번째 페이지에서 여러 번 수정합니다.

nodejs사용 가능하지만 사용할 수 node없는 시스템 (또는 node실제로 아마추어 패킷 라디오 노드 프로그램 이있는 ) 에서 사용자가 소프트웨어를 실행할 수 있도록 진정으로 필사적으로 확인하려는 경우이 "2 줄 셔뱅"을 사용할 수 있습니다. 에서 유닉스 및 리눅스 스택 교환 :

#!/bin/sh
':' //; exec "$(command -v nodejs || command -v node)" "$0" "$@"

console.log('Hello world!');

하지만 Node 세계의 다른 사람이 거의 없을 때 이것을 정말로해야합니까?

참고 URL : https://stackoverflow.com/questions/20638520/appropriate-hashbang-for-node-js-scripts

반응형