Node测试模块运行npm test报错,加node前缀后仍报SyntaxError如何解决
问题排查与解决方案
根因说明
- 你使用的是Windows系统,最初的脚本使用了Unix风格的相对路径执行规则,Windows的cmd/PowerShell不识别
./开头的直接执行写法,同时你的原始脚本末尾多了一个多余的转义双引号,也是报错诱因。 - 第二次修改用node直接执行
./node_modules/.bin/wdio属于用法错误:该路径下的wdio是Shell可执行脚本,不是Node可运行的JS文件,直接用node调用会触发语法解析错误。
修复方案
可任选以下任意一种方案修改package.json的scripts配置:
方案1:直接调用wdio命令(全平台通用,最稳妥)
npm执行scripts时会自动把node_modules/.bin加入系统环境变量,不需要写全路径,直接调用wdio命令即可,Windows和Unix系统都可以自动识别对应版本的可执行文件:
"scripts": { "test": "wdio run wdio.conf.js" }
方案2:手动指定wdio的JS执行入口(适配特殊场景)
如果方案1不生效,可以直接指定@wdio/cli包内的JS入口文件路径:
"scripts": { "test": "node ./node_modules/@wdio/cli/bin/wdio.js wdio.conf.js" }
额外检查项
- 确认已经安装了wdio相关依赖,未安装可先执行
npm i @wdio/cli --save-dev - 确认项目根目录下存在
wdio.conf.js配置文件
内容的提问来源于stack exchange,提问作者SomeBody
相关产品推荐
相关产品推荐

