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 模块文件,适用于其他打包工具以及支持
相关文章
|
前端开发 JavaScript 安全
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
487 1
|
API
vite.config.js 的一些常用配置
vite.config.js 的一些常用配置
726 1
|
自然语言处理 JavaScript 前端开发
vue3-ts-vite:vue 项目 配置 多页面应用
vue3-ts-vite:vue 项目 配置 多页面应用
2526 0
|
JavaScript 前端开发 开发者
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
|
10月前
|
存储 Java Linux
【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源
Maven插件安装,Maven项目构建,依赖管理,Haven Help插件,Maven仓库,Maven如何设置国内源
|
12月前
|
资源调度 JavaScript 前端开发
Prettier 入门:让代码整洁如一
【10月更文挑战第18天】在软件开发过程中,代码的可读性对于团队协作和个人工作效率都至关重要。良好的代码格式不仅能提高代码的可读性,还能减少因风格差异引起的代码审查时间。Prettier 是一款自动代码格式化工具,能够帮助开发者快速统一代码风格,使得团队成员编写的代码具有一致性。本文将介绍 Prettier 的基本用法、安装方式以及如何在常见编辑器中设置和使用 Prettier。
805 4
|
JavaScript 开发工具
vite如何打包vue3插件为JSSDK
【9月更文挑战第10天】以下是使用 Vite 打包 Vue 3 插件为 JS SDK 的步骤:首先通过 `npm init vite-plugin-sdk --template vue` 创建 Vue 3 项目并进入项目目录 `cd vite-plugin-sdk`。接着,在 `src` 目录下创建插件文件(如 `myPlugin.js`),并在 `main.js` 中引入和使用该插件。然后,修改 `vite.config.js` 文件以配置打包选项。最后,运行 `npm run build` 进行打包,生成的 `my-plugin-sdk.js` 即为 JS SDK,可在其他项目中引入使用。
566 6
|
JavaScript
Vite 按需引入 Ant Design Vue 3.0
Vite 按需引入 Ant Design Vue 3.0
|
监控 Java API
Java获取实时摄像头进行拍照(附源码)
Java是一种通用编程语言,可以用来开发各种类型的应用程序,包括涉及图像处理和相机操作的应用程序。要在Java中获取实时摄像头进行拍照,通常会借助一些,例如或等。这些库和API提供了访问摄像头和图像处理的功能。通过使用这些库和API,你可以编写Java代码来调用摄像头并实时获取视频流。然后,你可以选择从视频流中捕获图像并保存为图片文件。这样,你就能够实现在Java中获取实时摄像头进行拍照的功能。