Javascript Jest单元测试-SyntaxError:无法在模块外部使用导入语句
我正在尝试使用Jest在Vue中设置单元测试。但是,我遇到了以下错误:Javascript Jest单元测试-SyntaxError:无法在模块外部使用导入语句,javascript,unit-testing,vue.js,jestjs,Javascript,Unit Testing,Vue.js,Jestjs,我正在尝试使用Jest在Vue中设置单元测试。但是,我遇到了以下错误: ● Test suite failed to run ... SyntaxError: Cannot use import statement outside a module >1 | import editUser from '@/components/forms/editUser.vue'; | ^ 2 | import TestComponent from '@/pages/user/UserM
● Test suite failed to run
...
SyntaxError: Cannot use import statement outside a module
>1 | import editUser from '@/components/forms/editUser.vue';
| ^
2 | import TestComponent from '@/pages/user/UserMyProfile.vue';
3 | import { shallowMount } from '@vue/test-utils';
4 | import { expect } from 'chai';
5 | import 'jest';
package.json
中的Jest配置如下所示:
"jest": {
"moduleFileExtensions": [
"js",
"ts",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "vue-jest",
"^.+\\.tsx?$": "ts-jest"
},
"testURL": "http://localhost/",
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"modulePaths": [
"<rootDir"
],
"moduleDirectories": [
"node_modules",
"src"
],
"preset": "@vue/cli-plugin-unit-jest/presets/no-babel"
},
“开玩笑”:{
“moduleFileExtensions”:[
“js”,
“ts”,
“json”,
“vue”
],
“转变”:{
“*\\(vue)$”:“vue玩笑”,
“^.+\.tsx?$”:“ts笑话”
},
“testURL”:”http://localhost/",
“moduleNameMapper”:{
“^@/(.*)$”:“/src/$1”
},
“模块路径”:[
“问题在于,您正在使用的(节点_uu)模块中的一些需要传输,而另一些则不需要传输。因此,在找到需要忽略的模块之前,您需要使用此语法:
"jest": {
// what you already have...
transformIgnorePatterns: [
"node_modules/(?!(a-module"
+ "|another-module"
+ "|yet-another-module"
+ ")/)",
]
}
…其中,a-module
,另一个module
和另一个module
是您希望忽略的模块。
如果仔细查看错误,通常会找到导致错误的模块的名称。但是,如果无法找到,请尝试在editUser.vue
中导入的每个模块,然后逐个删除它们,直到找到要忽略的最小模块数。问题在于(节点)您正在使用的模块需要传输,有些则不需要。因此,您需要使用此语法,直到找到需要忽略的模块:
"jest": {
// what you already have...
transformIgnorePatterns: [
"node_modules/(?!(a-module"
+ "|another-module"
+ "|yet-another-module"
+ ")/)",
]
}
…其中,a-module
,另一个module
和另一个module
是您希望忽略的模块。
如果仔细查看错误,通常会找到导致错误的模块名称。但是,如果无法找到,请尝试在editUser.vue
中导入的每个模块,然后逐个删除它们,直到找到要忽略的最小模块数。在谷歌搜索了许多天并尝试了所有其他解决方案后ions,除此之外,其他方法都不起作用。为什么ts jest
文档中不包含此内容?在谷歌搜索了很多天并尝试了所有其他解决方案后,除了此之外,其他方法都不起作用。为什么ts jest
文档中不包含此内容?