城歌 2022-05-04 13:57:13
5. shebang line(#!
) 与node.js工具
写脚本已经是node.js的一个主流功能,比如gulp-cli
, webpack-cli
等等。今天用一个小工具突然报了一个莫名其妙的错误,错误原因比较有意思,这里记录下。
#!/usr/bin/env node var xxx...
一般情况下,脚本都是上面的格式,表示用node去执行下面的js代码。其中第一行叫shebang line,指明用来执行脚本的解释程序。
而使用的小工具报了这样的错误信息:
env: noder: No such file or directory
一番排查,问题出在shebang line:
fs.readFileSync('脚本所在路径').toString().slice(0, 30) // ---> '#!/usr/bin/env nodenn'use stri' // 正常的 '#!/usr/bin/env nodernrn'use st' // 报错的
是不是看出什么了?对的,问题就出在r
上。
unix/linux 下,换行符是n
,于是,有问题的shebang line被解析后,env是noder
,而不是node
。所以系统根本没法找到一个叫noder
的程序来执行这段脚本...
最后问了工具的开发者,他在windows上开发,
- 共 1 页
- 1
第 7 题:ES5/ES6 的继承除了写法以外还有什么区别?