vue3+vite项目中按需引入vant报错:Failed to resolve import的解决方案

这里给出基于Vue3和Vite的项目中,使用按需引入 Vant UI 组件库所遇到的 "Failed to resolve import" 报错的解决方案。

问题描述

在使用 Vite 构建 Vue 3 项目时,按需引入 Vant UI 组件库时会出现以下报错:

Failed to resolve import '../lib/.../style.css' from '@/index.css'

解决方案

方案一:安装插件

Vite 是一个基于原生 ES Modules 的构建工具,而 Vant 库是基于 CommonJS 模块编写的,因此在使用的时候需要帮助 Vite 将 CommonJS 模块转化为 ES Modules。

这里我们可以使用 vite-plugin-style-import 插件它支持将 Vant 库中的样式文件转化为 ES Modules,用于在 Vue 3 项目中按需引入。

具体安装步骤如下:

  1. 安装 vite-plugin-style-import 插件
npm install vite-plugin-style-import -D
  1. vite.config.js 文件中配置插件
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport from 'vite-plugin-style-import'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    styleImport({ // 配置样式插件
      libs: [
        {
          libraryName: 'vant',
          esModule: true,
          resolveStyle: (name) => `vant/es/${name}/style`
        }
      ]
    })
  ]
})
  1. main.js 中引入样式文件
import { createApp } from 'vue'
import App from './App.vue'
import 'vant/lib/index.css' // 引入vant样式
import router from './router'

createApp(App).use(router).mount('#app')

方案二:手动配置

如果不想使用插件,也可以手动在 vite.config.js 文件中配置 styleImport 解析器:

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

const path = require('path');

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      // 需要修改为Vant组件库实际的目录 ,具体路径请根据项目实际情况而定
      'vant': path.resolve(__dirname, './node_modules/vant')
    }
  },
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          // 可在这里自定义主题颜色
        }
      }
    }
  }
})

然后在 main.js 中引入样式文件:

import { createApp } from 'vue'
import App from './App.vue'

import 'vant/lib/index.css' // 引入vant样式

createApp(App).mount('#app')

示例说明

以按需引入 Vant 的 Button 组件为例:

  1. 安装 vant 库:
npm install vant -S
  1. 在需要使用 Button 组件的.vue 文件中按需引入组件:
<template>
  <van-button class="btn">Button</van-button>
</template>

<script>
import { Button } from 'vant'

export default {
  components: {
    [Button.name]: Button,
  },
}
</script>

<style lang="less" scoped>
.btn {
  margin-top: 20px;
}
</style>
  1. vite.config.js 文件中,根据使用的方案,添加相应的插件或配置解析器即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3+vite项目中按需引入vant报错:Failed to resolve import的解决方案 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue通过Blob对象实现导出Excel功能示例代码

    Vue通过Blob对象实现导出Excel功能示例代码 在前端开发中常常需要将数据导出为Excel表格,那么在Vue中如何通过Blob对象实现导出Excel功能呢?本文将提供一份完整的攻略供大家参考。 步骤一:安装依赖 我们需要安装两个依赖,分别是xlsx和file-saver,前者用于生成Excel文件,后者用于保存Excel文件。我们可以使用npm来进行安…

    Vue 2023年5月27日
    00
  • 一篇文章总结Vue3.2语法糖使用

    一篇文章总结Vue3.2语法糖使用 简介 Vue.js是一款流行的前端JavaScript框架,而Vue 3是其最新版本,其中引入了一些方便开发的新特性,即语法糖。本篇文章将讲解Vue3.2语法糖的使用方法。 defineComponent函数 在Vue3中,我们可以使用defineComponent函数定义组件,它可以让代码更加简洁明了。下面是一个使用de…

    Vue 2023年5月27日
    00
  • 教你60行代码实现一个迷你响应式系统vue

    如何用60行代码实现迷你响应式系统Vue 简介 Vue是一款流行的JavaScript框架,其拥有强大的响应式系统,可以方便地实现数据绑定及视图更新。本文将介绍如何用60行代码实现一个迷你的Vue响应式系统,以更好地理解Vue原理。 响应式系统的实现 响应对象Reactive 我们首先需要实现一个响应对象Reactive,用于监听对象的变化并触发更新。该响应…

    Vue 2023年5月27日
    00
  • vue 扩展现有组件的操作

    扩展 Vue 组件是指在已有的组件基础上进行自定义修改,以适应不同的业务需求。下面我将分享我们常用的几种扩展组件的方法。 1. 使用 mixins Mixins 是 Vue 中的一个实用工具,用于复用 Vue 组件中的一些常用逻辑。使用 mixins 可以将一些重复的代码抽离到单独的文件中,再通过导入和混入的方式来扩展组件。 使用 mixins 可以扩展已有…

    Vue 2023年5月28日
    00
  • Vue from-validate 表单验证的示例代码

    下面是Vue表单验证的示例代码攻略。 1. 安装依赖和引入相关组件 首先需要安装依赖包,包括vee-validate和vue-i18n等。这里以npm为例,执行以下命令: npm install vee-validate@next vue-i18n 然后在Vue项目入口文件中引入依赖: import { createApp } from ‘vue’; imp…

    Vue 2023年5月28日
    00
  • 详解如何运行vue项目

    下面是详解如何运行 Vue 项目的完整攻略。 环境准备 在运行 Vue 项目之前,我们需要先准备好开发环境,主要包括以下三个部分: Node.js Vue 项目需要 Node.js 环境支持,请先安装 Node.js,安装方法可以参考Node.js官方网站。 Vue CLI Vue CLI 是 Vue.js 官方提供的脚手架工具,用于初始化和快速搭建 Vue…

    Vue 2023年5月28日
    00
  • vue项目打包部署流程分析

    下面就来详细讲解一下“vue项目打包部署流程分析”的完整攻略。 首先,我们需要了解打包部署的基本流程,一般分为如下几步: 运行npm run build,生成打包后的静态资源 将打包后的静态资源文件上传至服务器 配置nginx等反向代理服务器,使静态资源文件能够被访问到 具体的细节和注意事项,并且需要根据具体情况进行不同的操作。 下面我以两条具体的示例来说明…

    Vue 2023年5月28日
    00
  • Nuxt.js实战和配置详解

    Nuxt.js是一个基于Vue.js的服务端渲染框架,它可以帮助开发者快速构建出高效可靠的Web应用程序。本文将详细讲解Nuxt.js实战和配置详解,包括安装、初始化项目、路由配置、视图渲染等内容。 安装 首先,在全局安装vue-cli脚手架: npm install -g vue-cli 接着,初始化一个项目: vue init nuxt-communit…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部