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
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
552 1
|
API
vite.config.js 的一些常用配置
vite.config.js 的一些常用配置
783 1
|
前端开发 JavaScript 安全
|
Ubuntu Shell 开发工具
Ubuntu 20.04 安装nvm
Ubuntu 20.04 安装nvm
6947 0
|
自然语言处理 JavaScript 前端开发
vue3-ts-vite:vue 项目 配置 多页面应用
vue3-ts-vite:vue 项目 配置 多页面应用
2642 0
|
11月前
|
存储 Java Linux
【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源
Maven插件安装,Maven项目构建,依赖管理,Haven Help插件,Maven仓库,Maven如何设置国内源
|
资源调度 JavaScript 前端开发
Prettier 入门:让代码整洁如一
【10月更文挑战第18天】在软件开发过程中,代码的可读性对于团队协作和个人工作效率都至关重要。良好的代码格式不仅能提高代码的可读性,还能减少因风格差异引起的代码审查时间。Prettier 是一款自动代码格式化工具,能够帮助开发者快速统一代码风格,使得团队成员编写的代码具有一致性。本文将介绍 Prettier 的基本用法、安装方式以及如何在常见编辑器中设置和使用 Prettier。
918 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,可在其他项目中引入使用。
648 6
|
JavaScript
Vite 按需引入 Ant Design Vue 3.0
Vite 按需引入 Ant Design Vue 3.0
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
8938 1
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)