所以我正在尝试构建javascriptair / site。在package.json
内部有一个指向javascript“command”package-scripts
的npm脚本。找到该存储库https://github.com/kentcdodds/p-s。在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
以使其与相同的命令交叉平台。
答案 0 :(得分:0)
这是一个Node.js模块,由另一个脚本构成require
d。它不是由Microsoft JScript执行的,如果您尝试在Node中单独运行脚本文件,它将不会执行任何操作。这是因为这个特定脚本的所有内部方法都应该在使用前暴露在外部。
进一步检查后,您可能正在寻找的实际文件似乎位于bin文件夹中。使用node命令运行它,看看会发生什么。
答案 1 :(得分:0)
此处指出了原因和解决方法:https://github.com/javascriptair/site/issues/98#issuecomment-404420108
所以问题是repo的根目录中有一个js文件,其基本名称与二进制文件相同。 Windows上的npm首先尝试将其作为二进制文件运行,而不是查找'./node_modules/.bin' 因此,要解决此问题,只需从
.JS
环境变量中删除PATHEXT
并重新启动
我遇到了同样的问题:当包的根目录中有tslint.js
个文件,而package.json
中的一个npm脚本只调用tslint
时,npm将触发jscript而不是节点,从而导致弹出“ Microsoft JScript编译错误”。从.js
中删除PATHEXT
有帮助。