vite 和 rollup

Rollup

Rollup 是一个 JavaScript 模块打包器,它可以将多个模块打包成一个单独的文件。

rollup 的特点:

  1. 不会生成过多的运行代码

  2. 可以多模块化规范打包

  3. input(输入): 这是你的项目的入口点(即主要的 JavaScript 文件)。Rollup 会从这个文件开始分析你的代码,并尝试找出它依赖的其他模块。

input: 'src/main.js'
  1. output(输出): 这指定了 Rollup 打包后生成的文件的设置。
  • file: 指定打包后的输出文件的路径和名称。
  • format: 指定打包后的文件的模块格式,比如 ‘cjs’ (CommonJS), ‘es’ (ES module), ‘umd’, ‘iife’ 等。
  • name (可选): 当 format 为 ‘umd’ 或 ‘iife’ 时,指定全局变量的名称。
output: {file: 'dist/bundle.js',format: 'umd',name: 'MyLibrary'
}
  1. plugins(插件): Rollup 的强大之处在于其插件系统,它允许你在打包过程中执行各种操作,例如代码转换、文件拷贝、压缩等等。常见的插件包括 @rollup/plugin-commonjs (用于处理 CommonJS 模块) 和 @rollup/plugin-node-resolve (用于解析模块路径)。
plugins: [commonjs(),resolve()
]
  1. external(外部依赖): 当你打包的代码依赖于外部库(例如 lodash 或 React),你可以将它们列在 external 中,这样 Rollup 就不会将它们打包进最终的输出文件中,而是保留对它们的引用。
external: ['lodash', 'react']
  1. watch(监视模式): 这个配置项告诉 Rollup 在文件发生变化时重新构建你的代码。在开发过程中,这非常有用。
watch: {clearScreen: false
}

vite

  1. vite最大的特点是利用esm,让代码不像传统的构建工具一样去分析引入,打包构建,而是直接保持模块化,这样省去了大量的编译时间,让代码更改后的响应速度大量提升
  2. 构建方面,vite其实使用的是rollup
    在这里插入图片描述

本身已经集成了大部分的配置,比如各种预处理语言,ts,各种资源。自带模板仓库npm create vite@latest my-vue-app -- --template vue,本身就可以当做脚手架使用。webpack只是提供了打包,vue-cli脚手架内也只是提供了一套模板,内部集成webpack,供开发使用。

以下是 Vite 的核心配置:

  1. root(根目录): 指定项目的根目录。
root: './src'
  1. base(基础路径): 指定应用被部署时的基础 URL 路径。它通常用于处理构建后资源在不同路径部署的情况。
base: '/my-app/'
  1. publicDir(静态资源目录): 指定存放静态资源文件的目录。这些资源文件在构建时会被复制到输出目录。
publicDir: 'public'
  1. build(构建配置): 指定构建选项,包括输出目录、是否开启 sourcemap、是否开启压缩等等。
  • outDir: 指定构建输出目录。
  • sourcemap: 是否生成 sourcemap。
  • minify: 是否开启压缩。
  • assetsDir: 指定输出的静态资源文件目录。
build: {outDir: 'dist',sourcemap: true,minify: 'terser',assetsDir: 'assets'
}
  1. server(开发服务器配置): 指定开发服务器的配置选项,例如监听的端口、是否开启 HTTPS 等。
  • port: 指定服务器监听的端口。
  • https: 是否开启 HTTPS。
  • proxy: 配置代理,用于解决跨域问题。
server: {port: 3000,https: false,proxy: {'/api': {target: 'http://localhost:8000',changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '')}}
}
  1. plugins(插件): Vite 支持通过插件来扩展其功能,例如处理 CSS、处理 TypeScript 等。你可以在这里配置需要使用的插件。
plugins: [vue(),css(),typescript()
]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++][算法基础]树的重心(树图DFS)

给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后&a…

考研数学|零基础冲130复习方案+资料分享

如果想考130,那就一定要好好复习基础。 因为24年开始,考研的走向就已经发生了改变,考研数学开始越来越注重一下三点的考察: 基础知识的掌握程度计算能力解题能力 这三点环环相扣,每一个都要复习好才行。 在基础阶段…

Linux操作系统的学习

Linux系统的目录结构 / 是所有目录的顶点目录结构像一颗倒挂的树 Linux常用命令 常见命令 序号命令对应英文作用1lslist查看当前目录下的内容2pwdprint work directory查看当前所在目录3cd [目录名]change directory切换目录4touch [文件名]touch如果文件不存在,新…

《极域多媒体教室互动管理系统软件》控制方法大全

前言及背景: 当我坐在电脑前,打开它,点开谷歌,刚刚想打开百度,突然闪出来了: 该网页已被阻止!!! 正文: 1.极域控制原理: 好…

猝不及防 CCF-B ICPP 2024投稿延期至4月22日提交摘要 机会来了别错过

会议之眼 快讯 第53届ICPP(International Conference on Parallel Processing)即国际并行处理会议将于 2024年 8月12日-15日在瑞典哥特兰岛举行!ICPP是世界上最古老的连续举办的并行计算计算机科学会议之一。它是学术界、工业界和政府的研究…

MINI2440 开发板 给他干出来了

环境是ubuntu14.04。不要问我为什么是这个版本,因为之前的ubuntu12.04 环境干不出来,你去试试就知道了!各种资源包下载不下来。 输入启动参数: 进入MINI2440:别说心里一万个开心,启动完成,输入p…

【工具】NPS 内网穿透搭建

背景 在日常开发中经常会涉及到使用公网某个端口进行开发调试的情况,但我们日常开发的机器IP是非公网IP,所以需要使用内网穿透的手段,使我们的服务在公网上能被访问到。 常用的内网穿透工具分两大类,一类是付费/免费服务&#xf…

git修改本地提交历史邮箱地址

1、Git(Git) 2、修改Git本地提交历史中的邮箱地址 使用 git rebase 命令进行交互式重置。 具体步骤如下:(https://git-scm.com/docs/git-rebase) 1、查看提交历史: 使用 git log 命令列出提交历史&#x…

09 Php学习:数组和排序

数组概念 在PHP中,数组是一种复合数据类型,用于存储多个值。以下是关于PHP数组的详细解释: 索引数组:索引数组是最基本的数组类型,其中每个元素都有一个唯一的数字索引,从0开始递增。 关联数组&#xff…

标注平台工作流:如何提高训练数据质量与管理效率

世界发展日益依托数据的驱动,企业发现,管理不断增长的数据集却愈发困难。数据标注是诸多行业的一个关键过程,其中包括机器学习、计算机视觉和自然语言处理。对于大型语言模型(LLM)来说尤是如此,大型语言模型…

【经验分享】如何一眼识破真假六西格玛培训公司?

随着六西格玛热度的不断升温,市场上也涌现出了形形色色的六西格玛培训公司。如何在众多培训机构中挑选出真正专业、有价值的六西格玛培训公司?本文将为大家揭开这一神秘面纱,让您轻松辨别真伪,找到适合自己的培训公司。 一、看背景…

【优选算法专栏】专题十六:BFS解决最短路问题(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…