O Node.js é muito popular hoje em dia e eu escrevi alguns scripts nele. Infelizmente, a compatibilidade é um problema. Oficialmente, o intérprete Node.js. deve ser chamado node
, mas o Debian e o Ubuntu enviam um executável chamado nodejs
.
Eu quero scripts portáteis com os quais o Node.js possa trabalhar em tantas situações quanto possível. Supondo que o nome do arquivo seja foo.js
, eu realmente quero que o script seja executado de duas maneiras:
./foo.js
executa o script, se quernode
ounodejs
está em$PATH
.node foo.js
também executa o script (assumindo que o intérprete é chamadonode
)
Nota: As respostas de xavierm02 e de mim são duas variações de um script poliglota. Ainda estou interessado em uma solução pura, se houver.
alphacentauri
e tal. Se houver um executável chamado nodejs
, você pode ter 99% de certeza de que é Node.js. Por que não apoiar os dois nodejs
e node
?
node
para o seu script ou ter um tipo de script make que modifique o shebang.