我正在实施node-config docs中的选项2。
这很好,并且在测试环境之外运行时定义了我的全局配置变量。
但是,当我使用vue-cli
和Jest单元测试(例如vue-cli-service test:unit
)运行它时,出现此错误:
● Test suite failed to run
ReferenceError: APP_CONFIG is not defined
// vue.config.js
...
configureWebpack: {
plugins: [
new ConfigWebpackPlugin('APP_CONFIG')
]
},
...
有什么好的方法?是因为Jest在node-config
完成用其值切换出所有全局变量之前就开始执行JS文件吗?
答案 0 :(得分:1)
Jest无法运行Webpack,因此您必须手动设置测试的配置。解决方法是,您可以将配置声明为Jest global。
要声明全局,请将globals
属性添加到jest.config.js
中的导出对象中。子属性密钥将是config-webpack
的命名空间(在您的情况下为APP_CONFIG
),值将是config/
中所需的配置JSON文件:
// jest.config.js
module.exports = {
globals: {
APP_CONFIG: require('./config/default.json')
}
}