Jest не удается импортировать vue-test-utils с исключением «Ошибка синтаксиса: невозможно использовать оператор импорта вне модуля» .

#javascript #typescript #vue.js #jestjs #nuxt.js

Вопрос:

Я использую NuxtJS с настроенной шуткой и машинописным текстом. Теперь случается так, что мой небольшой пример теста не запускается из-за исключения.

  Details:

    /home/xetra11/development/myapp/test/Navigation.spec.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import { mount } from '@vue/test-utils';
                                                                                             ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
 

Мой модульный тест довольно прост

 import { mount } from '@vue/test-utils'
import Navigation from '@/components/layout/Navigation.vue'

describe('navigation', () => {
  test('is correct', () => {
    const wrapper = mount(Navigation)
    expect(wrapper.vm).toBeTruthy()
  })
})
 

Вот мое jest.config.js (я добавил transformIgnorePatterns , потому что многие поисковые решения предлагали это)

 module.exports = {
  moduleNameMapper: {
    '^@/(.*)

Вот также выдержка из моего  package.json  

  "devDependencies": {
    "@nuxt/types": "^2.15.3",
    "@nuxt/typescript-build": "^2.1.0",
    "@nuxtjs/vuetify": "^1.11.3",
    "@vue/test-utils": "^1.1.3",
    "babel-core": "7.0.0-bridge.0",
    "babel-jest": "^26.6.3",
    "jest": "^26.6.3",
    "ts-jest": "^26.5.4",
    "vue-jest": "^3.0.4"
  }
 

Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:

 npm install --save-dev babel-core@^7.0.0-bridge.0
 

Мне также нужно было следующее в jest.config.js:

   moduleNameMapper: {
    '^@/(.*)

Документация



: '<rootDir>/$1',
'^~/(.*)Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: '<rootDir>/$1',
'^vue

Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: 'vue/dist/vue.common.js'
},
moduleFileExtensions: [
'ts',
'js',
'vue',
'json'
],
transform: {
"^. \.ts$": "ts-jest",
'^. \.jsВот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: 'babel-jest',
'.*\.(vue)

Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: 'vue-jest'
},
transformIgnorePatterns: [
"node_modules/@vue/test-utils/dist/vue-test-utils.js",
],
collectCoverage: true,
collectCoverageFrom: [
'<rootDir>/components/**/*.vue',
'<rootDir>/pages/**/*.vue'
]
}
Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 - не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: '<rootDir>/src/$1',
},

Документация

: ‘<rootDir>/$1’,
‘^~/(.*)

Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 — не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: ‘<rootDir>/$1’,
‘^vueВот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 — не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: ‘vue/dist/vue.common.js’
},
moduleFileExtensions: [
‘ts’,
‘js’,
‘vue’,
‘json’
],
transform: {
«^. \.ts$»: «ts-jest»,
‘^. \.js

Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 — не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: ‘babel-jest’,
‘.*\.(vue)Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 — не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация

: ‘vue-jest’
},
transformIgnorePatterns: [
«node_modules/@vue/test-utils/dist/vue-test-utils.js»,
],
collectCoverage: true,
collectCoverageFrom: [
‘<rootDir>/components/**/*.vue’,
‘<rootDir>/pages/**/*.vue’
]
}

Вот также выдержка из моего package.json


Есть идеи, в чем здесь проблема?

Комментарии:

1. попробуйте обновить узел до последней версии

2. Я нахожусь на узле 16.1.0 — не помогает

3. Можете ли вы дать ссылку на репродукцию?

Ответ №1:

У меня была та же ошибка, которую я исправил, установив мост babel-core:


Мне также нужно было следующее в jest.config.js:


Документация