vue.js - 测试套件无法运行在 vue3 中使用 jest 时找不到模块 'vue-template-compiler

标签 vue.js jestjs vuejs3

当我尝试使用 jest 运行测试时,我似乎在 vue3 中遇到错误。

Test suite failed to run Cannot find module 'vue-template-compiler


这就是我尝试运行测试时得到的结果。
我知道这个包来自 vue2,我安装了“@vue/compiler-sfc”,这是它的 vue3 版本。
如果我确实安装了那个 vue-template-compiler 包,我会收到版本不匹配的错误。
任何找到此问题的解决方案的人,或者只是等待他们更新 vue-jest 以使用其他软件包的人。
这是我的 package.json
  "name": "project",
  "version": "0.1.0",
  "private": true,
  "jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      "^.+\\.vue$": "vue-jest",
      "^.+\\.js$": "babel-jest"
    }
  },
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit -w",
    "test:e2e": "vue-cli-service test:e2e",
    "lint": "vue-cli-service lint",
    "test": "nightwatch",
    "testMocha": "mocha",
    "testJest": "jest"
  },
  "dependencies": {
    "@vue/cli-plugin-unit-jest": "^4.5.10",
    "@vue/compiler-sfc": "^3.0.5",
    "autoprefixer": "^9.8.6",
    "firebase": "^8.2.3",
    "jspdf": "^2.3.0",
    "nightwatch": "^1.5.1",
    "postcss": "^7.0.35",
    "register-service-worker": "^1.7.1",
    "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.2",
    "vue": "^3.0.5",
    "vue-class-component": "^8.0.0-0",
    "vue-jest": "^3.0.7",
    "vue-loader": "^15.9.6",
    "vue-router": "^4.0.3",
    "vue-server-renderer": "^2.6.12",
    "vuex": "^4.0.0-0"
  },
  "devDependencies": {
    "@types/chai": "^4.2.11",
    "@types/mocha": "^5.2.4",
    "@typescript-eslint/eslint-plugin": "^2.33.0",
    "@typescript-eslint/parser": "^2.33.0",
    "@vue/cli-plugin-e2e-nightwatch": "^4.5.10",
    "@vue/cli-plugin-eslint": "^4.5.10",
    "@vue/cli-plugin-pwa": "^4.5.10",
    "@vue/cli-plugin-router": "^4.5.10",
    "@vue/cli-plugin-typescript": "^4.5.10",
    "@vue/cli-plugin-unit-mocha": "^4.5.10",
    "@vue/cli-plugin-vuex": "^4.5.10",
    "@vue/cli-service": "^4.5.10",
    "@vue/eslint-config-typescript": "^5.0.2",
    "@vue/test-utils": "^2.0.0-beta.14",
    "chai": "^4.1.2",
    "chromedriver": "^87.0.5",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^7.4.1",
    "sass": "^1.32.4",
    "sass-loader": "^8.0.2",
    "typescript": "~3.9.3",
    "vue-cli-plugin-tailwind": "^2.0.5"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/vue3-essential",
      "eslint:recommended",
      "@vue/typescript/recommended"
    ],
    "parserOptions": {
      "ecmaVersion": 2020
    },
    "rules": {},
    "overrides": [
      {
        "files": [
          "**/__tests__/*.{j,t}s?(x)",
          "**/tests/unit/**/*.spec.{j,t}s?(x)"
        ],
        "env": {
          "mocha": true
        }
      }
    ]
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

最佳答案

我在尝试让测试库在非 vue-cli webpack 项目下工作时遇到了同样的问题。尝试更新到 vue-jest 5。对于我的项目,这是:

"jest": "^25.5.4",
"vue-jest": "^5.0.0-alpha.7",
此提示来自与此相关的讨论 gist .

关于vue.js - 测试套件无法运行在 vue3 中使用 jest 时找不到模块 'vue-template-compiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65790642/

相关文章:

javascript - OnBlur 没有以正确的方式被调用 - Jest enzyme

javascript - 类型错误 : Cannot read property 'src' of undefined when loading script in React Enzyme

typescript - 类型 'recaptchaLoaded' .ts(2339) 上不存在属性 'IReCaptchaComposition | undefined'

laravel - 如何在 webpack.mix 中配置路径别名?

typescript - 在 vue 3 中从另一个本地项目导入和显示组件

npm - vuejs webpack relative modules were not found 报错

javascript - 关于 : Vue. js 操作/突变的澄清

javascript - Vue 2 以编程方式创建切换传输

javascript - 单击元素时如何在 Firefox 中获取 VueJS $event?

javascript - 如何在 Jest 的 xyz.test.js 中导入 ".mjs"模块?