编辑:这篇文章在编辑中失控了,请点击此链接进入一个新的 Stackoverflow 帖子,该帖子更清晰: 语法错误:遵循 vue-test-utils 官方教程时无法在模块外使用导入语句
关于这个问题有成千上万的帖子和帖子,我仍然不能解决我的问题。我遵循Jest和Mocha的“入门”部分,两次都得到相同的错误:< code > syntax error:Cannot use import statement outside a module ,但是它们提供的链接根本没有帮助。
底部有一个新的编辑,其中包含一个干净的新项目的步骤,供您遵循,这会导致错误。
< code>"vue-jest": "^3.0.7",< code>"vue": "^2.6.12",< code > " @ vue/test-utils ":" ^1.2.2"
pack. json
"mocha": "mocha 'tests/Frontend/**/*.test.js'"
example.test.js:
import { mount } from "@vue/test-utils"
import Dashboard from "../../resources/js/views/Dashboard";
import * as assert from "assert";
describe('test example', () => {
it('should work', () => {
assert.equal([1, 2, 3].indexOf(4), -1); // doesn't matter what I do here
})
})
我尝试过的:
--要求@babel/Register
标志与摩卡"transformIgnorePatterns": []代码>,从而允许考虑所有node_modules
. babelrc
文件,内容如下:Error: Multiple configuration files found. Please remove one:
- package.json
- C:\Users\f.marchi\workspace\projects\sanctum-test\.babelrc
{
"env": {
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
有人能证实吗,这些文件遗漏了一些非常重要的步骤?我真的不知道自己做错了什么,我只是在遵循教程。
编辑:jest. config.js:
module.exports = {
clearMocks: true,
collectCoverage: true,
coverageDirectory: "coverage",
moduleFileExtensions: [
"js",
"json",
"vue"
],
transform: {
".*\\.(vue)$": "vue-jest"
},
transformIgnorePatterns: []
};
编辑:我刚刚再次尝试,如果需要,您可以按照:
{
"jest": {
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "vue-jest"
}
}
}
{
"jest": {
"transform": {
// process `*.js` files with `babel-jest`
".*\\.(js)$": "babel-jest" //<-- changed this
}
}
}
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
'@babel/preset-env' //<-- added this
]
};
你应该使用vue-cli API。
在package.json中,将以下内容添加到脚本中:
"test:unit": "vue-cli-service test:unit"
您已经安装了vue-cli和test-utils,因此它现在应该可以工作了。