如何在Jest中禁用"Use Strict"以测试含遗留八进制字面量的代码
解决Jest默认启用严格模式导致遗留八进制字面量报错的问题
Jest会默认在测试环境中启用严格模式,哪怕你的源码和package相关配置里没加任何严格模式声明,也会触发Legacy octal literals are not allowed in strict mode这个错误。
你可以通过以下几种方式强制Jest退出严格模式:
修改package.json添加Jest全局配置
在package.json里直接新增jest配置段,全局禁用严格模式:{ "scripts": { "test": "jest" }, "jest": { "globals": { "strict": false } } }通过命令行参数临时禁用
直接修改test脚本,在jest命令后添加全局参数:"scripts": { "test": "jest --globals '{\"strict\": false}'" }注意:Windows环境下可能需要调整引号转义,比如把单引号换成双引号,内部双引号改成单引号:
jest --globals "{'strict': false}"使用单独的jest.config.js配置文件
如果项目里有单独的Jest配置文件,直接在其中添加globals配置:module.exports = { globals: { strict: false } };
配置完成后重新执行npm test,遗留八进制字面量的语法就能正常被解析了。
内容的提问来源于stack exchange,提问作者Christos Binos
相关产品推荐
相关产品推荐

