Centos vs OSx shebang的双击

时间:2018-04-06 06:57:44

标签: node.js shebang babel-node

我有以下./run文件+ x模式。

#!/usr/bin/env babel-node --
require("generator/run.js")

用作任务管理器的入口点(对于静态站点生成器)。

我称之为$ ./run someTask --someFlag,它在我的本地计算机(OS X)上工作得很好process.argv,如:

[ 'node',
  '/Users/username/Projects/projectname/run',
  'someTask',
  '--someFlag' ]

Hovewer,当我在使用CentOS的机器上尝试相同的$ ./run someTask --someFlag命令时,我收到错误:

/usr/bin/env: babel-node --: No such file or directory 

虽然肯定安装了babel-node并且手动呼叫:

$ /usr/bin/env babel-node --

也可以。我知道问题是由双重破折号引起的 - 删除它们删除了错误。但是我需要那些破折号来分隔我自己的任务标志,否则它们会被babel-node消耗掉,我搜索了"双击shebang"在这里和谷歌,没有得到答案。

当然,我可以将呼叫方法更改为babel-node ./run ...,但我希望保留$ ./run someTask --someFlag语法,如果可能的话,并了解为什么会发生这种情况。 Unix和Linux之间的shebang处理是否存在主要差异,或者两台机器上的Node.js之间存在差异?!

P.S。

两台机器都有相同版本的Node.js,babel-node和project文件。

0 个答案:

没有答案