我正在尝试测试vue组件,但是我总是遇到以下错误:
在对象上找不到模块“ babel-core”。 (node_modules / vue-jest / lib / compilers / babel-compiler.js:1:15)
package.json:
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/preset-env": "^7.3.1",
"@vue/test-utils": "^1.0.0-beta.29",
"babel-jest": "^24.1.0",
"babel-loader": "^8.0.5",
"css-loader": "^2.1.0",
"file-loader": "^3.0.1",
"jest": "^24.1.0",
"mini-css-extract-plugin": "^0.5.0",
"node-sass": "^4.11.0",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"vue": "^2.6.6",
"vue-jest": "^3.0.3",
"vue-loader": "^15.6.2",
"vue-router": "^3.0.2",
"vue-template-compiler": "^2.6.6",
"webpack": "^4.29.3",
},
.babelrc
{
"presets": [
"@babel/preset-env"
],
"plugins": [
"@babel/plugin-syntax-dynamic-import"
]
}
jest.config.js
module.exports = {
verbose: true,
moduleFileExtensions: [ "js", "json", "jsx", "ts", "tsx", "node", "vue" ],
transform: {
// process js with `babel-jest`
"^.+\\.js$": "babel-jest",
// process `*.vue` files with `vue-jest`
".*\\.(vue)$": "vue-jest",
}
};
您可以看到此行为here。
查看引用的文件时,我可以看到:
const babel = require('babel-core')
那不是@babel/core
吗?
所以我的问题是如何解决该错误?还是来自vue-jest
的问题?
答案 0 :(得分:3)
如@JamesCoyle所建议,安装babel-bridge
可以解决
npm i -D babel-core@^7.0.0-bridge.0
答案 1 :(得分:0)
软件包vue-jest
可以在babel-core
上使用。您没有安装该软件包。为了解决您的问题而不安装额外的软件包,请进入文件-> \ node_modules \ vue-jest \ lib \ compilers \ babel-compiler.js,您将看到下面的代码:
const babel = require('babel-core')
const loadBabelConfig = require('../load-babel-config.js')
module.exports = function compileBabel (scriptContent, inputSourceMap, inlineConfig, vueJestConfig, filePath) {
...
第一个常量是导入npm软件包babel-core。
如果使用@ babel / core进行更改,则应解决问题。更改后,它看起来应该像这样:
const babel = require('@babel/core')
const loadBabelConfig = require('../load-babel-config.js')
module.exports = function compileBabel (scriptContent, inputSourceMap, inlineConfig, vueJestConfig, filePath) {
...
我在网上看到了一些解决方案,他们建议将babel-core(版本6)替换为babe-core(7.0.0.0-bridge)。就我而言,这破坏了我的解决方案,我无法再发布任何东西,但开玩笑却可以。这是无法安装的人的解决方案 babel-core@7.0.0-bridge.0
要安装@ babel / core:npm install --save-dev @ babel / core Babel-core是babel的版本6,而@ babel / core是babel的版本7。