【问题标题】:Jest keeps warning "Cannot use import statement outside a module"Jest 不断警告“不能在模块外使用 import 语句”
【发布时间】:2021-11-03 08:51:11
【问题描述】:

看起来像导入模块错误。 这是我的 package.json 设置,谁能指出我错过了什么? 谢谢。

{
  "name": "prj",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite --port 8080",
    "build": "vite build",
    "serve": "vite preview --port 8000",
    "test": "node --experimental-vm-modules node_modules/jest/bin/jest"
  },
  "jest": {
    "moduleFileExtensions": ["js", "json", "vue"],
    "transform": {
      "^.+\\.js$": "babel-jest",
      "^.+\\.vue$": "vue-jest"
    }
  },

  "dependencies": {
    "axios": "^0.21.1",
    "vue": "^3.2.6",
    "vue-i18n": "^9.1.7",
    "vue-router": "^4.0.11",
    "vuex": "^4.0.2"
  },
  "devDependencies": {
    "@babel/core": "^7.15.5",
    "@vitejs/plugin-vue": "^1.6.0",
    "@vue/compiler-sfc": "^3.0.5",
    "@vue/test-utils": "^2.0.0-rc.14",
    "babel-jest": "^26.6.3",
    "vite": "^2.5.1",
    "vue-jest": "^5.0.0-alpha.10"
  }
}

ExperimentalWarning:VM 模块是一项实验性功能。此功能可能随时更改 (使用node --trace-warnings ... 显示警告的创建位置) 失败 src/tests/examples.test.js ● 测试套件无法运行

Jest encountered an unexpected token

......

Details:

/some/path/src/tests/examples.test.js:4
import HomePage from './src/views/HomePage.vue';
^^^^^^

SyntaxError: Cannot use import statement outside a module

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

【问题讨论】:

    标签: node.js jestjs es6-modules babel-jest


    【解决方案1】:

    我正在使用 webpack 并遇到与安装 babel-core 桥接器相同的错误:

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

    我还需要 jest.config.js 中的以下内容:

      moduleNameMapper: {
        '^@/(.*)$': '<rootDir>/src/$1',
      },
    

    Documentation

    【讨论】:

    • 对,就是babel相关的问题。重新安装 babel lib 并修复。
    • @WinstonSmith 如果这个答案对你有用,那么你应该接受它作为批准的答案或建议编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2021-05-09
    • 2020-02-09
    • 1970-01-01
    • 2020-01-27
    • 2020-02-11
    相关资源
    最近更新 更多