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日

相关文章

  • 利用vite创建vue3项目的全过程及一个小BUG详解

    下面我将详细讲解如何利用 Vite 创建 Vue 3 项目的全过程,并对遇到的一个小 BUG 进行详解。 1. 安装 Vite 首先,我们需要全局安装 Vite: npm install -g vite 2. 创建项目 创建一个基于 Vue 3 的项目可以使用 Vue CLI 4.x 或者使用 Vite + Vue 3。这里我们使用 Vite + Vue 3…

    Vue 2023年5月27日
    00
  • 探究Vue.js 2.0新增的虚拟DOM

    探究Vue.js 2.0新增的虚拟DOM 在Vue.js 2.0中,引入了虚拟DOM,它是在DOM上的一个抽象层。使用虚拟DOM有以下几个优点: 性能优化。虚拟DOM可以避免不必要的DOM操作,减少了重绘和回流次数,提升了渲染效率。 跨平台开发。虚拟DOM可以在不同平台上实现原生DOM上没有的特性,例如React Native中的Flexbox布局。 更好的…

    Vue 2023年5月28日
    00
  • typescript在vue中的入门案例代码demo

    下面是关于“TypeScript在Vue中的入门案例代码demo”的完整攻略: 什么是TypeScript TypeScript是一个开源的编程语言,它是JavaScript的超集,具有类型和对象导向特性,开发者可以使用它来开发大型的Web应用或Node.js应用。它的语法看起来像JavaScript,但是针对开发体验和代码维护性做了很多改进。 如何在Vue…

    Vue 2023年5月27日
    00
  • vue源码解析computed多次访问会有死循环原理

    下面是关于“vue源码解析computed多次访问会有死循环原理”的完整攻略。 1. computed的原理 先来简单介绍一下computed的原理。在Vue组件中,computed是指计算属性,是一个基于响应式依赖进行缓存的数据属性,它的值在使用时会自动收集依赖,发现依赖变化时会重新计算,并且将结果缓存起来,直到依赖变化才重新计算。这样就避免了重复计算,提…

    Vue 2023年5月28日
    00
  • 详解vue生命周期

    当我们开发 Vue.js 应用时,Vue 实例会经历一系列的过程,这些过程被称为“生命周期”。Vue 提供了一些钩子函数,让我们在生命周期不同时刻执行代码以达到相应的目的。下面将详解 Vue 生命周期的完整攻略。 生命周期概述 Vue 生命周期分为八个阶段,每个阶段对应一个钩子函数,以下是八个阶段的钩子函数: beforeCreate:在实例初始化之后,数据…

    Vue 2023年5月28日
    00
  • vue+element+springboot实现文件下载进度条展现功能示例

    下面我来详细讲解“vue+element+springboot实现文件下载进度条展现功能”的完整攻略。 1. 准备工作 在开始实现之前,我们需要先准备好一些工作。 在后端(springboot)中编写文件下载接口 在前端(vue+element)中编写文件下载相关的代码 2. 后端文件下载接口实现 接下来,我们需要在后端编写文件下载接口。 具体实现方式如下:…

    Vue 2023年5月28日
    00
  • Vue批量图片显示时遇到的路径被解析问题

    在Vue中批量显示图片时,由于图片路径的解析会存在一些问题。在这里,我会为大家讲解一些常见的解决方法和技巧。我的攻略包括以下内容: 使用require来加载图片 使用public文件夹存放图片 1. 使用require来加载图片 对于小型项目来说,我们可以使用require来加载图片。这种方法非常简单,只需要在组件文件中使用require即可,如下所示: &…

    Vue 2023年5月27日
    00
  • Mock.js在Vue项目中的使用小结

    我们来详细讲解如何在Vue项目中使用Mock.js。 步骤一:安装Mock.js 在Vue项目中使用Mock.js,需要先安装Mock.js的依赖包。可以使用npm进行安装,命令如下: npm install mockjs –save-dev 步骤二:创建mock数据 Mock.js提供了灵活的API可以用来生成随机的数据,从而方便地模拟接口返回的数据。在…

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