Javascript Jest单元测试-SyntaxError:无法在模块外部使用导入语句

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

我正在尝试使用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/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
文档中不包含此内容?