这可能不是问题,但我注意到,当在命令提示符下发出命令>express时(在Windows10中),实际运行的文件是\node_modules\express-generator\bin\express,而不是\node_modules\express\lib\express.js代码。我知道node实际上并不需要.js扩展名,但我已经习惯了捆绑的linux批处理文件(在我的系统上也没有显示扩展名)和扩展名为.cmd的windows批处理文件之间的区别,这让我怀疑我下载的express版本的有效性。在他们使用express_generator的新方法中,他们是否只为Windows和Linux提供了一个javascript文件?我拿对了吗?。。顺便说一下,有问题的express文件确实在顶部有一行shebang行,具体来说就是#!/usr/bin/env node。这当然意味着这个文件是为Linux量身定做的。当然,shebang行在windows上会被忽略,但它确实会让人停下来。。。。感谢您的帮助
发布于 2017-03-06 18:44:42
TL;博士:一切看起来都很好。
express\lib\express.js是Express模块的一部分,它是开发人员用于开发Express应用程序的实际代码。此文件不能直接从命令行使用。
express-generator\bin\express是express-generator提供的用于创建Express项目目录的命令行工具。这意味着要从命令行运行。
在Linux/Unix上,命令行工具通常没有扩展名(您已经提到过)。这些工具可以使用任意数量的不同编程语言实现,包括Javascript。Linux知道使用哪个解释器来通过shebang行运行该工具。
我不知道Windows的内部结构,所以不确定它如何处理那些无扩展的命令行工具,但只要express (命令行界面工具)能够工作,我就不会太担心它。
https://stackoverflow.com/questions/42621393
复制相似问题