javascript - 在 vue 中使用 jest 时无法编译但测试用例通过
问题描述
我正在使用 jest 和 vue.js 并成功运行我的测试,但我的模块构建失败。我不明白为什么。这是我的代码。请帮助我。如果需要,我会提供更多。
包.json
{
"name": "weather-app",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test": "jest"
},
"dependencies": {
"@babel/core": "^7.7.2",
"@vue/test-utils": "^1.0.0-beta.29",
"babel-core": "^7.0.0-bridge.0",
"core-js": "^3.3.2",
"vue": "^2.6.10",
"vuex": "^3.1.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.0.0",
"@vue/cli-plugin-eslint": "^4.0.0",
"@vue/cli-service": "^4.0.0",
"babel-eslint": "^10.0.3",
"babel-jest": "^24.9.0",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"jest": "^24.9.0",
"vue-jest": "^3.0.5",
"vue-template-compiler": "^2.6.10"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {
"no-console": 0
},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"jest": {
"moduleFileExtensions": [
"js",
"vue"
],
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
}
}
}
我在屏幕上遇到的错误
Failed to compile.
./src/components/weather/weatherInfo.vue?vue&type=style&index=0&id=8f726072&lang=css&scoped=true& (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/weather/weatherInfo.vue?vue&type=style&index=0&id=8f726072&lang=css&scoped=true&)
Module build failed (from ./node_modules/postcss-loader/src/index.js):
JSONError: JSON Error in C:\Users\guest1\Projects\Vue Cli\wheather-app\package.json:
Unexpected token { in JSON at position 1057 while parsing near '... 2 versions" ], { "jest": { ...'
at module.exports (C:\Users\guest1\Projects\Vue Cli\wheather-app\node_modules\parse-json\index.js:26:19)
at Object.loadJson (C:\Users\guest1\Projects\Vue Cli\wheather-app\node_modules\cosmiconfig\dist\loaders.js:15:12)
at Explorer.loadPackageProp (C:\Users\guest1\Projects\Vue Cli\wheather-app\node_modules\cosmiconfig\dist\createExplorer.js:176:35)
at Explorer.loadFileContent (C:\Users\guest1\Projects\Vue Cli\wheather-app\node_modules\cosmiconfig\dist\createExplorer.js:230:12)
at Promise.resolve.then (C:\Users\guest1\Projects\Vue Cli\wheather-app\node_modules\cosmiconfig\dist\createExplorer.js:252:21)
我的测试用例结果
λ npm test
> weather-app@0.1.0 test C:\Users\guest1\Projects\Vue Cli\wheather-app
> jest
PASS src/test/App.test.js (6.524s)
App.test.js
√ equals loading to true] (47ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 9.544s
Ran all test suites.
解决方案
尝试更改 babel.config.js 中的预设
module.exports = {
presets: [
['@babel/preset-env']
]
}
推荐阅读
- javascript - 有没有办法通过手机控制基于桌面three.js 的网络应用程序?
- javascript - 如何使用裁剪网格显示图像预览以使用户将图像拖动到固定大小
- scala - 使用 set.add 时,使用 mutable.Map 和 mutable.Set 折叠不起作用
- amazon-web-services - 从控制台备份/版本控制 AWS AppSync
- c# - 如何使用 c# 在 SSMS(SQL Server Management Studio) 17 的标题栏中设置自定义文本
- singleton - EJB Singleton 是否同步?
- neo4j - Neo4j - 检查顺序路径是否存在
- spring-boot - 在 Spring Boot 上调用 GenericFilterBean 的 doFilter() 后返回
- google-sheets - 谷歌表格根据单词列表识别单元格中的银行动作
- c# - 添加 .NET Standard 2.0 类库项目后,UWP 应用项目出错