本文来源于阿里云-云栖社区,原文点击这里。
问题的起源非常简单,当我们在编写一个入门程序时,就会迅速想起那句脍炙人口的语句:
console.log('Hello World');
于是乎,顺手保存为node.js,紧接着尝试以node node.js
来运行该示例程序。毫无疑问,在cmd环境下,会遇到如下的报错:
(PS:实际上无论是Mac、Linux用户,亦或是WIndows中使用Powershell或其他终端环境的同学都无法与此问题完美邂逅)
初步分析
此时此刻,心中一阵失落,居然连入门的示例程序都无法运行,不禁一阵瞎想:是否该放弃node.js了?
言归正传,细心的同学会发现,报错的源头来自Windows Script Host
,下简称WSH
,我们不难查到它是 Windows 操作系统脚本语言程序(script,即:脚本)的运行环境。
执行了什么?
简单分析一下node node.js
这条命令,我们会很自然地认定为:执行node.exe程序,参数为node.js。
然而实际上,真正执行的程序却变成WSH
,前面执行的命令node node.js
并没有任何跟调起WSH
相关的逻辑,因此为何调起了WSH
成为了解谜的关键。
展开全文