Windows 10环境下执行npm test命令报错问题求助
解决Windows 10下
npm test执行Karma时的语法错误 我之前也碰到过一模一样的问题!这是因为Windows默认的命令行环境(CMD或PowerShell)没法直接解析Karma那个bash风格的启动脚本,Node误把它当成JS文件执行,自然就抛出语法错误了。下面给你几个靠谱的解决办法:
用Git Bash执行命令
安装Git Bash后,打开它并切换到你的项目目录,直接运行npm test就行。Git Bash支持bash语法,能正确解析Karma的启动脚本,不会再出现这个错误。修改package.json中的test脚本
把package.json里的test命令改成直接调用Karma的JS入口文件,避开bash脚本。比如原来的脚本是:"scripts": { "test": "karma start karma.conf.js" }改成:
"scripts": { "test": "node node_modules/karma/bin/karma start karma.conf.js" }这样Node会直接运行Karma的JS文件,不会接触到bash语法的脚本。
使用Windows子系统Linux(WSL)
如果你已经开启了WSL,切换到WSL的终端环境,进入项目目录后运行npm test,WSL完全支持bash环境,也能顺利执行测试。
补充说明
报错里的 basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 是bash的命令替换语法,Node的JS引擎根本不认识这种写法,所以才会抛出SyntaxError: missing ) after argument list的错误——本质就是脚本的执行环境不匹配导致的。
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

