rollup的input配置和output配置详解

简介: 【8月更文挑战第5天】rollup的input配置和output配置详解

Rollup基础入门
通过上文,我们了解了rollup的基础用法,了解了其input和output基础配置,这篇文章,我们学习一下其详细用法。

基础配置演示

首先,我们创建并初始化一个演示项目,安装rollup依赖

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

然后创建src目录,目录内创建两个文件作为演示代码
image.png
最后,我们创建rollup.config.js配置文件,写入一个最基本的配置

export default {
   
   
  input: 'src/index.js',
  output: {
   
   
    file: 'dist/main.js',
    format:"umd"
  }
};

现在,我们打包看看
GIF 2022-12-29 21-40-07.gif

详细配置演示

rollup的input属性用来配置打包入口相关设置,output用来配置打包出口相关设置

input

input指定打包入口文件,支持字符串数组对象三种配置方式。

支持类型 示例 含义
string input: "src/index.js", 指定单个打包入口
[] input: ["src/index.js", "src/log.js"], 指定多个打包入口
{ } input:{
 a:  'src/index.js',
  'b/index':  'src/log.js'

}, | 指定多个打包入口,并指定打包名称 |

字符串类型最为简单,就如我们上面的示例一样,参考上篇文章,这里不再赘述。
使用数组或者对象类型作为 input 的值,那么入口将被打包到独立的输出区块(chunks),简单来说,就是有几个入口文件,打包出来就有几个输出文件。我们通过示例来进行演示。

要注意的是,使用数组类型对象类型,必须使用output.dir指定输出chunks的文件名!

数组类型

我们在rollup.config.js中更改配置

export default {
   
   
  input: ["src/index.js", "src/log.js"],
  output: {
   
   
    dir: "bundle",
    format: "esm",
  },
};

打包试试
image.png
log.js

const log = function (msg){
   
   
  console.log("--------info---------");
  console.log(msg);
  console.log("--------info---------");
};
const error = function (msg){
   
   
  console.log("--------error---------");
  console.log(msg);
  console.log("--------error---------");
};

export {
   
    error, log };

如果你使用数组或者对象作为 input 的值,那么它们将被打包到独立的输出区块(chunks)。(几个入口文件,即几个输出js文件)

对象类型

export default {
   
   
  input: {
   
   
    a: "src/index.js",
    "b/index": "src/log.js",
  },
  output: {
   
   
    dir: "bundle",
    format: "esm",
  },
};

执行 rollup --config 后
image.png
bundle\b\index.js

const log = function (msg){
   
   
  console.log("--------info---------");
  console.log(msg);
  console.log("--------info---------");
};
const error = function (msg){
   
   
  console.log("--------error---------");
  console.log(msg);
  console.log("--------error---------");
};


export {
   
    error, log };

可以发现,对象类型的好处是可以自定义名称!!!
那,数组类型的方式能该默认的chunk名吗?通过output.entryFileNames可以更改。参考下文!

output

output.file

该选项用于指定打包后的js文件名。

注:只有当生成的 chunk 不超过一个时,该选项才会生效。

output.dir

该选项用于指定所有生成 chunk 文件所在的目录。

注:input类型为对象或者数组时,该选项是必须的!!(即如果生成多个 chunk,则此选项是必须的。)

output.format

该选项用于指定生成 bundle 的格式。可以是以下之一:

  • amd - 异步模块定义,适用于 RequireJS 等模块加载器
  • cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs)
  • es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持
相关文章
|
编译器 定位技术 API
|
3月前
|
人工智能 JavaScript API
解放双手!OpenClaw Agent Browser全攻略(阿里云+本地部署+免费API+网页自动化场景落地)
“让AI聊聊天、写代码不难,难的是让它自己打开网页、填表单、查数据”——2026年,无数OpenClaw用户被这个痛点困扰。参考文章直击核心:当AI只能“纸上谈兵”,无法实际操控浏览器,就永远成不了真正的“数字员工”。而Agent Browser技能的出现,彻底打破了这一壁垒——它给OpenClaw装上“上网的手和眼睛”,让AI能像真人一样打开网页、点击按钮、填写表单、提取数据,24小时不间断完成网页自动化任务。
6780 8
|
8月前
|
JSON JavaScript Android开发
原生与 Uniapp 的通信机制是如何实现双向调用的?
原生与 Uniapp 的通信机制是如何实现双向调用的?
1116 137
|
10月前
|
资源调度
Vue3 + Vite 构建组件库发布到 npm
这篇文章介绍了如何使用Vue3和Vite构建组件库并发布到npm,包括初始化项目、配置项目结构、创建组件目录、设置入口文件以及导出组件等步骤。
1314 0
Vue3 + Vite 构建组件库发布到 npm
|
自然语言处理 JavaScript 前端开发
vue3-ts-vite:vue 项目 配置 多页面应用
vue3-ts-vite:vue 项目 配置 多页面应用
3424 0
|
JavaScript 前端开发 API
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和VMdPreview组件的示例代码。此外,还提供了一个完整示例的链接,包括编辑器和预览组件的使用效果和代码。
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
|
前端开发 JavaScript
rollup从0到1将react组件库打包发布npm
rollup从0到1将react组件库打包发布npm记录全过程
1107 1
rollup从0到1将react组件库打包发布npm
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
11678 1
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
2495 0
|
JSON 前端开发 算法
vite打包优化vite-plugin-compression的使用
【8月更文挑战第4天】vite打包优化vite-plugin-compression的使用
2419 4