10min带你快速入门Rollup的基础使用

简介: 【8月更文挑战第5天】10min带你快速入门Rollup的基础使用

Rollup的基础使用

Rollup 简介

Rollup 是一个 Js打包工具,和webpack不同,它只能打包基于ES6模块标准的代码。这意味着,它自身不能打包CommonJs规范的JS代码、不支持import aixos from “axios”这样的外部模块引入、不支持打包css、img等其他资源;这些功能的实现都需要借助Rollup 插件。

当然,它编译出来的代码可读性非常好。

构建"App应用"时,webpack比较合适,如果是"类库(纯js项目)",rollup更加适合。>

Rollup 打包初体验

使用Rollup 打包一个项目很容易,我们先创建并初始化一个项目,然后安装rollup。

mkdir rollup
cd rollup
npm init -y
npm i rollup -g

我们创建src目录,目录内创建两个文件,用来演示打包
image.png
使用 rollup [入口文件目录] 命令指定入口文件即可打包js代码
GIF 2022-12-26 17-01-48.gif
命令行打印出了打包后的代码,十分简洁!!!但,项目里并没有打包好的文件,我们需要指定输出文件名

rollup ./src/index.js --file ./dist/main.js

GIF 2022-12-26 17-03-41.gif
仔细观察打包后的代码

const log = function (msg){
   
   
  console.log(msg);
};
log("石小石的rollup学习");

我们在log.js里导出了log方法和error方法,由于error方法没有使用,打包的时候自动帮我们去掉了。这是rollup的Tree-Shaking。

总结:

  • 入口文件参数指定: rollup ./src/index.js
  • 打包输出需要指定文件名: rollup ./src/index.js --file ./src/main.js

Rollup的配置文件说明

配置文件的使用

Rollup 的配置文件并不是必须的,但是配置文件非常强大而且很方便!!
配置文件是一个 ES 模块,它对外导出一个对象,这个对象配置(默认文件名为:rollup.config.js)大概长这个样子:

export default {
   
   
  input: 'src/index.js',
  output: {
   
   
    file: 'bundle.js',
  }
};

如果想使用配置文件,必须要给指定加上 --config 或 -c

将自定义配置文件的路径传给 Rollup:
rollup --config my.config.js
如果你不传文件名, Rollup 将会尝试按照以下顺序加载配置文件:
rollup.config.mjs -> rollup.config.cjs -> rollup.config.js

我们创建一个配置文件,使用rollup -c打包命令试试
GIF 2022-12-26 17-24-32.gif
直接打包,会报错。提示:我们正在加载一个ES module,需要在在packge.json内加入type:module,或者把文件格式改为“mjs”
image.png
我们在package.json中type:module,重新打包试试
GIF 2022-12-26 17-27-47.gif

基础配置参数说明

在上面的示例中,我们知道了两个基本配置项,inputoutput。

input

input用来配置入口文件,类型为表示入口文件的一个字符串,如:src/index.js

output

output用来设置打包后的代码输出配置,主要包含file配置和format配置。

file输出目录

此选项用来更改输出文件名称即目录。如示例,我们指定bundle.js,在根目录输出了这个打包文件。
如果我们这么设置

output: {
   
   
    file: 'dist/main.js',
}

打包出来则是这个样子
image.png

format打包格式简介

output的format属性用来指定打包出来的代码格式。它有以下几种可配置格式

  • amd - 异步模块定义,适用于 RequireJS 等模块加载器
  • cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs)
  • es - 打包为 ES 模块文件,format默认值。适用于其他打包工具以及支持
相关文章
|
8月前
|
JavaScript 前端开发 Java
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
Jeesite5 是一个基于 Spring Boot 3.3 和 Vue3 的企业级快速开发平台,集成了众多优秀开源项目,如 MyBatis Plus、Bootstrap、JQuery 等。它提供了模块化设计、权限管理、多数据库支持、代码生成器和国际化等功能,极大地提高了企业级项目的开发效率。Jeesite5 广泛应用于企业管理系统、电商平台、客户关系管理和知识管理等领域。通过其强大的功能和灵活性,Jeesite5 成为了企业级开发的首选框架之一。访问 [Gitee 页面](https://gitee.com/thinkgem/jeesite5) 获取更多信息。
343 0
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
|
9月前
|
存储 人工智能 安全
面向法律场景的大模型 RAG 检索增强解决方案
检索增强生成模型结合了信息检索与生成式人工智能的优点,从而在特定场景下提供更为精准和相关的答案。以人工智能平台 PAI 为例,为您介绍在云上使用一站式白盒化大模型应用开发平台 PAI-LangStudio 构建面向法律场景的大模型 RAG 检索增强解决方案,应用构建更简便,开发环境更直观。此外,PAI 平台同样发布了面向医疗、金融和教育领域的 RAG 解决方案。
|
7月前
|
数据采集 资源调度 JavaScript
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。
|
11月前
|
监控 Unix Linux
|
资源调度 JavaScript 前端开发
window系统如何管理多版本node
window系统如何管理多版本node
256 0
|
12月前
|
前端开发 JavaScript 开发者
利用 el-select 和 el-tree 实现树形结构多选框联动功能
本文详细介绍了如何使用ElementUI中的el-select下拉选择器和el-tree树形控件来实现多功能联动选择器,包括多选、删除、搜索、清空选项等功能。通过树形控件展示复杂的层级结构,用户可以通过下拉选择树形节点,实时搜索节点,且支持批量选择和删除功能。文中提供了完整的HTML、JavaScript和CSS代码实现,帮助开发者快速集成此功能。
3986 0
利用 el-select 和 el-tree 实现树形结构多选框联动功能
|
Linux 数据安全/隐私保护 Docker
MQTT(EMQX) - Linux CentOS Docker 安装
MQTT(EMQX) - Linux CentOS Docker 安装
711 0
|
JavaScript 开发工具 git
Three.js第1篇,Three.js新手教学,如何在项目中使用Three.js(three.js使用流程详细,three.js的使用方式,three.js创建3d物体)
Three.js封装了WebGL的底层细节,是一款运行在浏览器中的 3D 引擎,可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象,目前在Git上已经拥有90k+的star。
548 0
Three.js第1篇,Three.js新手教学,如何在项目中使用Three.js(three.js使用流程详细,three.js的使用方式,three.js创建3d物体)
|
JavaScript
js函数封装 —— 金额添加千分位分隔符
js函数封装 —— 金额添加千分位分隔符
158 2
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的小说阅读器的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的小说阅读器的详细设计和实现
274 2