为什么 bin/www 文件在快速生成器中没有扩展名?



我一直有这个疑问,我不知道为什么创建简单 http 服务器的 bin 文件夹中的文件没有.js扩展名。

这背后有什么原因吗?

Unix的传统是可执行文件没有扩展名。

例如,在 Linux 和 MacOS 上列出您键入的目录:

ls

你不输入

ls.exe

另一个例子,要在Linux上启动Dropbox服务,你可以输入

dropbox

你不输入

dropbox.py

即使Dropbox只是一个包含Python代码的文本文件。

Unix(以及Windows上的bash终端)有一个功能,如果一个文件被标记为可执行文件(使用chmod命令),并且第一行包含:

#!

然后shell(控制命令行的程序)将删除前两个字符(#!)并执行第一行的其余部分。这通常被称为 shbang 线(sh = shell,!= bang)。

因此,如果你想在node中开发一个命令行程序.js你需要做的就是用#! /usr/bin/env node启动文件:

#! /usr/bin/env node
//       ^
//       |
//  the 'env' command will find the correct install path of node
console.log('hello world');

然后使用chmod使文件可执行:

chmod +x my-script.js

当然,创建一个以.js结尾的程序看起来并不"专业"。例如,运行 gulp 时不键入gulp.js,运行npm时不键入npm.js。因此,人们遵循传统,使他们的可执行脚本没有扩展名 - 这使得人们更难意识到你不是用C或汇编语言编写程序的。

因为www文件是可执行的。

打开控制台,转到bin文件夹,然后键入./www。服务器将运行。

最新更新