Javascript 在Windows上尝试从package.json执行脚本会引发JScript错误
因此,我正在尝试构建javascriptair/站点。在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
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,我不明白这个包应该如何工作:xpackage scripts.js
正在导出一个简单的键/值对象,并且什么都不做。