programing

Node.js 스크립트에 적합한 hashbang

stoneblock 2023. 9. 6. 21:45

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