Vue2单元测试遇webpack报错:Module not found: 'vue-server-renderer'
解决方案(Vue2环境)
方案1:补全依赖并调整配置
- 先安装对应版本的
vue-server-renderer,@vue/server-test-utils(Vue2版本)把它作为peer依赖,不会自动安装:npm i --save-dev vue-server-renderer@2.x - 调整webpack配置,确保测试环境正确识别服务端渲染相关模块。如果用vue-cli,在
vue.config.js里针对测试环境修改:module.exports = { chainWebpack: config => { if (process.env.NODE_ENV === 'test') { config.resolve.set('alias', { 'vue$': 'vue/dist/vue.common.js' }) // 把webpack target设为node,适配server-test-utils的运行环境 config.target('node') } } }
方案2:改用客户端测试工具(更适合普通单元测试)
如果你的单元测试不需要针对服务端渲染场景,直接用Vue2对应的客户端测试工具更省心,能避开服务端渲染相关依赖问题:
- 卸载
@vue/server-test-utils:npm uninstall @vue/server-test-utils - 安装Vue2版本的
@vue/test-utils:npm i --save-dev @vue/test-utils@1.x - 修改测试文件的导入语句:
// 替换原来的server-test-utils导入 import { mount, shallowMount } from '@vue/test-utils'
内容的提问来源于stack exchange,提问作者manymanymore
相关产品推荐
相关产品推荐

