Javascript 在Windows上尝试从package.json执行脚本会引发JScript错误

Javascript 在Windows上尝试从package.json执行脚本会引发JScript错误,javascript,json,node.js,windows,npm,Javascript,Json,Node.js,Windows,Npm,因此,我正在尝试构建javascriptair/站点。在package.json中有一个指向javascript“命令”包脚本的npm脚本。找到该存储库。在Windows中,它会出现JScript错误 Script: C:[path_to_code]\package-scripts.js Line: 2 Char: 1 Error: Syntax error Code: 800A03EA Source: Microsoft JScript compilation error 因此,在packa

因此,我正在尝试构建javascriptair/站点。在
package.json
中有一个指向javascript“命令”
包脚本的npm脚本。找到该存储库。在Windows中,它会出现JScript错误

Script: C:[path_to_code]\package-scripts.js
Line: 2
Char: 1
Error: Syntax error
Code: 800A03EA
Source: Microsoft JScript compilation error
因此,在
package.json
中,它包含以下内容

"scripts": {
    "start": "package-scripts"
}
如果我将
package.json
更改为以下内容:

"scripts": {
    "start": "package-scripts.cmd"
}

我可以启动服务器。所以我的问题是,为什么会发生这种情况,以及我们如何更改
package.json
,使其使用相同的命令跨平台运行

这是一个Node.js模块,由另一个脚本指定为
require
d。它不是由MicrosoftJScript执行的,如果您尝试在节点中单独运行脚本文件,它将不会执行任何操作。这是因为这个特定脚本的所有内部方法都应该在使用之前对外公开


进一步检查后,您可能正在查找的实际文件似乎位于bin文件夹中。使用node命令运行该命令,看看会发生什么。

此处指出了原因和解决方法:

因此,问题在于repo的根目录中有一个与binary同名的js文件。windows上的npm首先尝试将其作为二进制文件运行,而不是查看“./node\u modules/.bin” 因此,要解决问题,只需从
PATHEXT
环境变量中删除
.JS
,然后重新启动


我也遇到了同样的问题:当包的根目录中有
tslint.js
文件,而
package.json
中有一个npm脚本时,只要调用
tslint
,jscript就会由npm而不是节点触发,从而弹出“Microsoft jscript编译错误”窗口。从
PATHEXT
中删除
.js
有帮助。

节点包scripts.js
?似乎您尝试使用microsoft js vm评估节点脚本。这里有一个链接,指向“是的,我尝试过了”,它输出它正在尝试运行它,但随后将我返回到命令提示符。实际上没有执行任何东西mh,TBH,我不明白这个包应该如何工作:x
package scripts.js
正在导出一个简单的键/值对象,并且什么都不做。