Vite基本配置

这篇具有很好参考价值的文章主要介绍了Vite基本配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vite是一个新型的前端构建工具,为我们在开发和构建做了很多工作,比如:生成一个开发服务器,提供热更新、直接通过包名引用模块、解决跨域等问题、打包时还会自动压缩文件体积。

Vite的内部帮我们集成了很多的插件如:Rollup、esbuild、uglifyjs、terser、postcss、less等等,降低了开发者的心智负担。

第三方插件的使用原理

在调用第三方插件,传入配置后,其实是在执行命令后添加参数,如:

...
esbuildOptions:{
    platform:"node"
}
就相当于
esbuild xxx --platform=node

搭建

npm create vite@latest

这条指令是 create-Vite 脚手架帮我们去创建模板, 并非是Vite, 由他创建的模板中集成了Vite;

vite.config.js

vite.config.js是默认的配置文件, 当然名字也可以更改但是没必要。

文件中需要向外暴露个配置对象

// 1. 一般
export default{
    xxxx
}

// 2. 函数式(提示效果更好)
import {defineConfig} from 'vite';
export default defineConfig({

})

同时可以传入一个函数
export default defineConfig((command,mode)=>{
    // command ->'build'|'serve'
    // mode -> 'development'|'production' 取决于运行 vite --mode xxx  xxx传入的是什么这里mode接受什么
})

esbuild

基本不用配置

网页去加载的资源在代码中写的都是相对路径,而在我们调试过程中会发现它的路径变成了http://localhost:5173/xxx这是Vite集成了esbuild去自动补全不规范的路径。

同时esbuild还可以解决多包问题,比如一个包引入了十几个包,这样浏览器就得一次性引入十几个包,而esbuild可以将十几个包写入一个包,提高引入效率。

optimizeDeps: { // esbuild,预加载
    exclude: [], // 默认node_modules
    esbuildOptions:{
        platform:"node" // 将平台改为node,默认为browser
    }
},

esbuild 官方配置API

别名alias

通过设置别名可以将文件中 "@" 转为绝对路径指向 "src" 文件

extensions

默认为 ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json'] ,所以在vue3中导入组件需要精确到 "xxx.vue" 不然报错。同时官方不建议将 '.vue' 加入,因为会影响类型支持。

import {defineConfig} from 'vite'
import path from 'path';

export default defineConfig({
...
resolve:{
        alias:{ // 设置别名
            '@':path.resolve(__dirname,'./src')
        }
    },
})

css

import {defineConfig} from 'vite'
import {postcssPresetEnv} from 'postcss-preset-env'

export default defineConfig({
...
css: {
        modules: {
            // 转换类名(camelCase为驼峰、camelCaseOnly只为驼峰其他都被替换、
            // dashes为中划线、dashesOnly为只能是中划线)
            localsConvention: "dashes",

            // 设置样式是否是局部的 local(默认)生成hash,global全局样式
            scopeBehaviour: 'local',

            // 设置样式命名方式
            // generateScopedName:"[hash:5]_[name]_local"
            generateScopedName: (name, filename, css) => {
                return `${name}${filename}${css}`
            },

            // 默认类名+其他字符串(文件名、随机)加入到hash生成中
            hashPrefix: 'myPro', 

            // 不解析该文件样式名,一般用于引入第三方
            globalModulePaths: ['base.module.css']
        },

        // 预处理器(常用)
        preprocessorOptions: {
            // 整个配置会再less执行的时候当作参数提交执行lessc,所以怎么配置看less文档
            less: { 
                //可以使用 100/2px --math="always"
                math: "always",

                // 定义全局的样式变量
                globalVars: {},

                // 可以用来导入全局变量文件(常用)
                additionalData:`@import '@/styles/variables.less';`,

                //开启css映像索引,生产环境定位问题文件
                sourceMap:true 
            }
        },
        postcss:{ 
            // 设置css后处理,类似js中babel,兼容低版本页面。加载默认配置
            plugins:[postcssPresetEnv({ browsers: 'last 2 versions' })] 
        }
    },
})

css加载,vite匹配到相应内容,插入到style标签中。再进行解析,解析后是js形式,方便热更新等。

环境变量

一般环境有:开发、测试、预发布、灰度、生产。Vite会通过dotenv去解析相应env文件,然后loadEnv加载env进入import.env中提供使用。

默认的环境变量需要以VITE_开头,不然会被Vite自动过滤掉。

export default defineConfig({
    // 设置变量头部命名为ENV_
    envPrefix: 'ENV_' ,

    // 加载.env文件的目录默认为根目录
    envDir: '/',

})

TS

Vite 天生支持 ts 不用过多配置,可以导入一个开箱即用的ts语法检测,严格要求ts语法规范。

import checker from 'vite-plugin-checker'

export default defineConfig({
    // (常用)
   plugins: [checker({ typescript: true })]
})

构建(常用)

export default defineConfig({
    build:{ 
            // rollup打包配置,具体看rollupAPI
            rollupOptions:{
                output:{
                    assetFileNames:'[hash]-[name][extname]'
                }
            },

            // 4kb以下去打包成base64
            assetsInlineLimit:4096, 

            // 指定输出路径
            outDir:"dist", 

            //指定静态资源路径
            assetsDir:"static", 

            //打包前清空文件,默认true
            emptyOutDir:true,
        },
})

gzip压缩

插件 vite-plugin-compression文章来源地址https://www.toymoban.com/news/detail-766040.html

import compressPlugin from "vite-plugin-compression";

export default defineConfig({
    // (常用)
   plugins: [
    compressPlugin({
        filter:/xxx/g, // 不打包文件
        threshold:1025, // 超过 1025b打包 
        ext:'.gz' // 以gz的后缀
    })
   ]
})

到了这里,关于Vite基本配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(65)
  • Vite+Vue3项目如何获取环境配置,并解决前端跨域问题

    根目录新建.env.development和.env.production文件 package.json配置启动参数 vite命令启动项目时,指定mode参数,加载vite.config.ts文件。 配置代理 在vite.config.ts中配置代理 配置vite-plugin-html 通过vite-plugin-html组件,可以将配置文件中的数据,绑定到index.html中,可以实现不同环境的页面ti

    2024年02月19日
    浏览(66)
  • 使用vite创建Vue/React前端项目,配置@别名和Sass样式,又快又方便

    Vite官方网站:Vite | 下一代的前端工具链  Vite 并不是基于 Webpack 的,它有自己的开发服务器,利用浏览器中的原生 ES 模块。这种架构使得 Vite 比 Webpack 的开发服务器快了好几个数量级。Vite 采用 Rollup 进行构建,速度也更快。  兼容性注意 Vite 需要 Node.js 版本 14.18+,16+。然

    2024年02月14日
    浏览(53)
  • vite跨域配置踩坑,postman链接后端接口正常,但是前端就是不能正常访问

    根据以下配置,发现怎么都链接不了后端地址,proxy对了呀。 仔细看,才发现host有问题  这里是本地前端访问地址配置,不设置默认http://127.0.0.1:5173/都可以访问,但是如果设置了只有设置的 http://127.0.0.1:80/或者http://localhost:80/可以访问 问题来了:设置为port80,host:0,0,0,0或者

    2024年02月08日
    浏览(50)
  • 记:vite3+vue3+axios前端项目跨域问题解决【前端和服务器nginx配置】

    前言:什么是跨域,网上一搜一大把,所以这里直接跳过,直入主题。 处理方式:不通过后端处理跨域,通过前端+服务器nginx处理。 1.前端涉及处理跨域的必要配置(开发环境、生产环境):vite3、vue3、axios 2.服务器涉及处理跨域的配置(生产环境):nginx【主要用到其配置

    2024年02月01日
    浏览(61)
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第十二章 常用工具函数 (Utils配置)

    在项目开发中,我们经常会使用一些工具函数,也经常会用到例如 loadsh 等工具库,但是这些工具库的体积往往比较大,如果项目本身已经引入了这些工具库,那么我们就没有必要再引入一次,所以我们需要自己封装一些工具函数,来简化我们的开发。 在 src/utils 目录下创建

    2024年02月20日
    浏览(62)
  • Vue3 vite build 之后不显示页面内容,只显示空白,也没有报错如何解决

    我的项目在 build 之后就插入到我的主网站的 /tools/image 路径下使用的,并非主网站,所以需要配置两个地方: 添加 base,意思是 build 之后的外部资源都从当前目录的相对路径获取。 比如 main.js 不是 /main.js 而是 ./main.js 我不知道是什么原理哈,反正是管用,之前在没有使用

    2024年02月13日
    浏览(64)
  • vite下javascript-obfuscator 代码混淆

    1.Vite混淆处理 项目环境:Vue3+Vite 1、安装 或者 在打包时候还会报错,需要安装下面的依赖 2、引入 在vite.config.ts中引入插件,并进行设置 3、配置项解释 关于 rollup-plugin-obfuscator 插件的配置选项列表,每个选项都用于定制代码混淆和压缩的方式。可以参看javascript-obfuscator 的配

    2024年02月19日
    浏览(34)
  • 【前端工程化】深入浅出vite(一)--vite的优点及原理、性能优化

    Vite 需要 Node.js 版本 14.18+,16+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。 webpack 支持多种模块化,将不同模块的依赖关系构建成依赖图来进行统一处理,当构建的项目越来越大时,需要处理的 JS 代码也越

    2024年02月11日
    浏览(50)
  • Vite好用的前端构建工具

    Vite是Vue的作者 尤雨溪 开发的 一种新型 前端构建工具 。 Vite在大型项目开发模式下,打包速度远高于webpack。 Vite只启动一台静态页面的服务器,不会打包全部项目文件代码,服务器根据客户端的请求加载不同的模块处理,实现 按需加载 。 而我们所熟知的webpack则是,一开始

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包