在Appium中遇到SyntaxError: Cannot use import statement outside a module错误求助
解决「Cannot use import statement outside a module」报错
错误根源
Node.js默认将.js文件按CommonJS模块规则解析,但你的代码(或者WebdriverIO的配置文件)用了ES模块的import语法,两种模块规范冲突导致报错。从报错栈能看到,是@wdio/config加载配置文件时触发的问题,核心是模块格式不匹配,不一定是包本身的问题。
具体解决步骤
全局设置ES模块:在项目根目录的
package.json里添加一行配置:"type": "module"加完之后,Node会把所有
.js文件当作ES模块处理,import语法就能正常用了。单独指定ES模块文件:不想全局改的话,直接把用到
import的配置文件(比如wdio.conf.js)后缀改成.mjs,Node会自动识别这是ES模块,不用改其他配置。重装依赖排查:如果上面两种方法都没用,再处理依赖问题:
- 删除项目里的
node_modules文件夹和package-lock.json - 重新运行
npm install,确保依赖安装完整且版本适配当前Node环境
- 删除项目里的
验证
改完配置或重装依赖后,重新运行代码,看报错是否消失。如果还有问题,检查配置文件里的import语句有没有语法错误。
内容的提问来源于stack exchange,提问作者Grewal
相关产品推荐
相关产品推荐

