You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Vue CLI/TypeScript的Vue2项目无法构建及运行Mocha单元测试

问题解决方案

一、TypeScript可选链操作符?.报错解决

该报错是由于测试、生产环境下Babel未对可选链、空值合并运算符等新语法做转译导致,可按以下步骤修复:

  1. 安装对应Babel插件
npm install @babel/plugin-proposal-optional-chaining @babel/plugin-proposal-nullish-coalescing-operator --save-dev
  1. 配置babel.config.js(项目根目录无该文件则新建)
module.exports = {
  presets: ['@vue/cli-plugin-babel/preset'],
  plugins: [
    '@babel/plugin-proposal-optional-chaining',
    '@babel/plugin-proposal-nullish-coalescing-operator'
  ]
}
  1. 检查tsconfig.json配置:确保compilerOptions.target设置为ESNext或ES2020,将语法转译工作交给Babel处理即可。

二、Vuetify Sass导入报错解决

该报错是由于项目同时安装了node-sass与sass(dart-sass)产生冲突,且sass-loader未适配Vuetify的样式导入规则导致,修复步骤如下:

  1. 卸载冲突的node-sass依赖
npm uninstall node-sass
  1. 修改vue.config.js,新增样式相关配置
module.exports = {
  transpileDependencies: ['vuetify'],
  lintOnSave: true,
  configureWebpack: {
    devtool: 'source-map',
  },
  pluginOptions: {
    apollo: { lintGQL: true },
    vuetify: {
      loaderOptions: {
        sass: {
          // 若有自定义Vuetify变量文件,替换下方路径为你的变量文件路径
          additionalData: `@import "~vuetify/src/styles/styles.sass"`
        },
        scss: {
          additionalData: `@import "~vuetify/src/styles/styles.sass";`
        }
      }
    }
  },
  css: {
    loaderOptions: {
      sass: {
        sassOptions: {
          indentedSyntax: true
        }
      }
    }
  }
};

若修改后仍报路径错误,可将配置中的additionalData字段替换为prependData,适配低版本sass-loader的参数规则。

  1. 重装依赖:删除项目根目录的node_modules文件夹、package-lock.json文件,重新执行npm install即可。

内容的提问来源于stack exchange,提问作者user3067684

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 10:15:05