vue | rollup 打包 | 配置 rollup.config.js 文件,更改 rollup的行为

原因:将入口文件 转为 esm umd 两种格式,要配置 rollup

Rollup 已内置到 vite 工具中,

命令行打包,参数多,麻烦——》解决:创建配置文件,js 写的,rollup.config.js


配置 rollup.config.js文件:

input 输入文件

output 输出文件:file 文件路径、format 格式

Rollup 运行配置文件:npx rollup --config rollup.config.js  

导出格式

exports.xxx = xxx => common.js的格式

export { xxx } => es module 格式 ——》与平时写的代码无异。

如何测试导出的格式

1. 修改导入文件,用于测试导出格式

2. 运行代码 npx rollup --config rollup.config.js  

3. ①配置格式 cjs,exports.xxx = xxx => common.js的格式

②配置 es module 格式,

 export{ xxx }  => es module 格式 ——》与平时写的代码无异。


 使用插件,打包过程中 更改 rollup 的行为——》使用 rollup 官方插件,在 rollup.config.js 中配置

复杂项目要灵活处理,有时直接处理 会报错。

可以使用插件,在打包的关键过程中 更改 rollup的行为

 Rollup 官方支持的插件

 例子:官方的 json 插件,支持将 json 文件转为 es6 modules

安装:npm install @rollup/plugin-json --save-dev

使用:在配置文件中 rollup.config.js 中 配置。

如 json:添加 import json from '@rollup/plugin-json';,并添加插件 plugins:[ json() ] 选项。

示范:测试,读取 json 文件中的 version字段

  导出的文件,成功取到version字段


vite 创建生产版本:1. 库模式  2. 自定义构建

库模式构建:vite.config.js 文件下 -> build选项->  lib 选项 -> entry 入口文件、name 暴露的全局变量、fileName 包文件名、formats 格式

 配置完成后,重新运行 npm run build-only


自定义构建:vite.config.js -> build选项 -> rollupOptions 选项

不打包的依赖:处理不想打包进库的依赖

问题: 打包文件过大

解决:将部分不需要用的依赖摘出去,如vue

步骤:vite.config.ts -> build 选项 ->  添加 rollupOptions 选项 -> external: [' 要排除在外的依赖 ']

例子:不打包 vue 依赖,重新运行:npm run build-only,打包体积显著减少。


报错:output.exports: "named"output.globals全局变量名称——》解决:在vite.config.ts文件中,build 配置 rollupOptions选项,里头添加 output字段,进行exports 和 globals 的配置。

步骤:vite.config.ts -> build 选项 ->  添加 rollupOptions 选项 -> output选 -> 添加 exports 表示既有具名导出也有默认导出,globals 给 vue 添加全局变量名称

注: 每一个外部依赖,都要有一个全局变量名称。

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

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

相关文章

服务器中物理处理器和逻辑处理器的区别?

在服务器或任何计算机系统中,**物理处理器(Physical Processor)和逻辑处理器(Logical Processor)**是两个不同的概念,它们分别代表了硬件层面和操作系统层面的处理能力。 物理处理器(Physical P…

【Gin框架】中间件

1. 什么是中间件 (Middleware)? 在 Web 框架的语境下,中间件 (Middleware) 是一种可重用的软件组件或函数,它被设计用来在 HTTP 请求-响应生命周期中的特定点拦截和处理请求或响应。在 Gin 框架中,中间件特指符合 gin.HandlerFun…

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议,主要用于帮助位于网络地址转换 (NAT) 设备(如路由器)后面的客户端发现自己的公共 IP 地址和端口号。这对于建立点对点 (P2P) 通信至关重要,尤其是在 VoIP&#…

AQS详解

概念 AQS(AbstractQueuedSynchronizer) 是并发包(java.util.concurrent)的核心组件,用于构建锁和同步器(如 ReentrantLock、Semaphore、CountDownLatch 等)。它通过维护一个 CLH 队列 和 同步状…

python实战项目76:51job数据采集与分析

python实战项目76:51job数据采集与分析 一、数据采集二、数据预处理2.1 导入相关库、读取数据2.2 查看数据2.3 处理数据、删除重复值、删除空值2.4 处理薪资水平字段数据三、数据可视化3.1 不同公司规模招聘岗位数量分布3.2 不同公司性质招聘岗位数量分布3.3 不同年限要求招聘岗…

每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系

现代前端工程化与构建工具体系 1. 为什么要工程化?(面试高频问题) 问题痛点: 模块太多、无法组织;代码冗长、性能差;浏览器兼容性差;团队协作混乱,缺少规范与自动化。 工程化目标…

shell脚本--变量及特殊变量,算术逻辑运算

1.变量是什么 2.变量类型 3.动态,静态,强弱类型 4.变量的命名 5.变量的定义和引用 5.1三种变量类型 普通变量 环境变量 局部变量 5.2单引号,双引号,强弱引用 双引号对变量赋值的影响01:59:给变量加双引号&#x…

Python粒子群优化算法结合热力图TIFF文件案例

Python粒子群优化算法结合热力图TIFF文件案例 1. 项目概述 本项目使用粒子群优化算法(PSO)在热力图TIFF文件中寻找温度最高点。热力图通常以地理空间数据形式存储(TIFF格式),包含温度分布信息。PSO算法模拟鸟群觅食行为,通过粒子协作在搜索空间中寻找最优解。 import …

使用Mambaout替换YOLObackbone 整合全局信息,提升遮挡目标检测中定位能力,以及小目标、多尺度

近年来,Transformer 架构虽在各类任务中成为主流,但注意力机制的二次复杂度对长序列处理构成挑战。为此,类似 RNN 的模型如 Mamba 被引入,其核心是状态空间模型(SSM),旨在以线性复杂度处理长序列…

力扣网C语言编程题:接雨水(动态规划实现)

一. 简介 本文记录力扣网上的逻辑编程题,涉及数组方面的,这里记录一下 C语言实现和Python实现。 二. 力扣网C语言编程题:接雨水 题目:接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子…

关于ubuntu环境下vscode进行debug的随笔

CMakeLists.txt的编写 顶层目录的CMakelists.txt 目录:./CMakeLists.txt #./CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(xxx_project_name LANGUAGES CXX) #设置工程名# 设置 C 标准和编译选项 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_ST…

技术演进中的开发沉思-9:window编程系列-内核对象线程同步(下)

今天我们继续走进 Windows 内核的世界,就昨天没说完的内核对象与线程同步内容接着继续,它们就像精密仪器里的齿轮,虽不显眼,却至关重要。 异步设备 I/O 在 Windows 系统中,异步设备 I/O 就像是一场精心编排的接力赛。…

用AI从0开始量化交易-Anaconda环境(env)和缓存(pkg)更改储存位置

之前介绍了Anaconda的安装和环境建立,最近自己的量化交易工具开发的差不多了,却发生了尴尬的问题,C盘被不断增大的conda环境和缓存占据得快满了。 在网上找了些教程,大多是讲迁移的,专门讲改本地改储存位置的比较少&am…

Python爬虫工作基本流程及urllib模块详解

在2025年的数据驱动时代,网络数据成为企业与个人的“金矿”,而Python爬虫则是挖掘这金矿的“利器”!无论是抓取电商价格、分析社交媒体趋势,还是构建知识库,Python爬虫都能让你事半功倍。然而,爬虫开发并非…

thinkphp8 模型-一对一,一对多,多对多 学习

thinkphp 命令创建模型(和laravel基本一样) php think make:model User 在模型里创建字段 protected $table User; protected $pk id; // 定义返回哪些字段 protected $field [id, name]; // 返回字段的类型 protected $schema [id > int] 模…

非线性方程组求解:复杂情况下的数值方法

在科学研究和工程应用中,非线性方程组的求解是一个常见的挑战。尤其当方程组包含复杂函数(如特殊函数、积分、微分等),使得雅可比矩阵难以解析求导时,传统的基于解析雅可比矩阵的 Newton-Raphson 方法难以直接应用。本…

边缘计算网关EG8200Mini首发开箱视频丨破解工业互联“协议孤岛”,重塑数据价值核心引擎行业痛点直击|低代码开发

数据采集4G边缘计算网关plc 工业现场设备品牌林立(西门子、三菱、欧姆龙等30品牌PLC)、协议碎片化(Modbus/OPC UA/BACnet等)、网络环境复杂(户外无光纤、车间电磁干扰)——传统网关难以实现多源异构设备统一…

2024-2025下期《网络设备与配置》期末模拟测试

一、 单选题(每题2分,共60分) RIP协议的默认最大跳数是( ) A. 10 B. 15 C. 20 D. 30以下哪个命令可以用来在交换机上进入全局配置模式?( ) A. 使用enable命令 B. 使用configure terminal命令 C. 使用inte…

虹科案例 | 欣旺达如何实现动力电池测试的长期稳定性+自动化?

新能源汽车产业狂飙突进,动力电池测试正面临前所未有的技术大考。 传统电池测试方案常因数据丢帧、协议适配等问题,导致测试周期延长和交付延期。在这场关乎安全与效率的产业竞速中,高精度数据采集与全球化交付能力,已成为动力电…

第17天:数据库学习笔记1

数据库学习笔记 1 SQL语言介绍 2 数据库的安装 2.1 启动数据库 方式一:net start mysql 方式二:在计算机管理里面手动打开数据库 2.2 登录MySQL 方式一:本地登录 即数据库与客户端在同一台电脑上。 方式二:远程登录 mysq…