Rollup中文文档-配置文件

命令行接口

Rollup通常应该从命令行使用。你可以提供一个Rollup的配置文件,简化命令行使用,并启用Rollup的高级功能。

配置文件

配置文件通常创建为rollup.config.js或者rollup.config.mjs并且位于项目根目录。

.js是传统的javascript文件,默认使用CommonJs模块系统。在.js中,需要使用require和module.exports。
.mjs是ECMAScript模块(ES Modules),是javascript的模块化标准,允许将代码拆分为多个独立的模块,并通过import和export进行模块之间的交互。

当你在Node环境中使用.mjs文件的时候,需要在package.json中指定type:module。告诉Node解析器该项目使用的是ES模块。

配置文件通常是一个ES模块,导出一个默认的对象,其中包含所需的选项:

ECMAScript 复制代码
export default {
    input: 'index.js',
    output: {
        file: 'bundle.js',
        format: 'cjs'
    }
}

Rollup将直接使用Node导入该文件。请注意一下,使用原生Node ES模块时存在一些注意事项,因为Rollup将遵循NodeESM语义。

如果你想使用require和module.exports编写CommonJS模块,可以将扩展名改成.cjs。

也可以用Typescript,安装相应Rollup插件,例如@rollup/plugin-typescript,并使用--configPlugin选项。

arduino 复制代码
rollup --config rollup.config.ts --configPlugin typescript

使用--configPlugin选项将始终强制你的配置文件转换为CommonJS格式。

配置文件中可以导出一个数组,这样可以从多个不相关的输入进行打包,即使在监视模式下也可以。如果要使用相同的输入打出不同的包,你要为每个输入提供一个一个输出的选项数组。

lua 复制代码
export default [  
 {
     input: 'index-a.js',
     output: {
         file: 'dist/bundle-a.js',
         format: 'cjs'
     }
 },
 {
     input: 'index-b.js',
     output: [
         {
             file: 'dist/bundle-a.1.js',
             format: 'cjs'
         },
         {
             file: 'dist/bundle-a.2.js',
             format: 'es'
          }
     ]
 }
];

如果想异步创建配置文件,Rollup也可以处理解析为对象或数组的Promise.

arduino 复制代码
// rollup.config.js  
import fetch from 'node-fetch';  
 
export default 
fetch('/some-remote-service-which-returns-actual-config');

如果使用配置文件去创建Rollup配置,执行命令的时候需要带上--config参数。

还可以通过导出一个返回配置格式的函数。该函数将传递当前的命令行参数,以便可以动态的调整你的配置。

填写配置时的智能提示

可以用JSDoc类型提示来利用你的IDE的智能感知功能。或者,你可以使用defineConfig,它应该提供了无需JSDoc注释即可使用智能感应的功能:

javascript 复制代码
import {defineConfig} from 'rollup'

export default defineConfig({

})

除了RollupOptions和封装了该类型的defineConfig辅助函数之外,以下类型也可能会很有用:

  • OutputOptions: 配置文件output的部分
  • Plugin: 提供name和一些勾子的插件对象。所有狗子都是完全类型化的,帮助插件开发。
  • PluginImpl: 将选项对象映射到插件对象的函数。大多数公共的Rollup插件都将遵循这种模式。

从一个NPM包加载配置

为了实现互操作性,Rollup还支持从node_modules中的包加载配置文件:

arduino 复制代码
rollup --config node:my-special-config
相关推荐
一次旅行24 分钟前
DeepSeek‑V4.1‑Flash‑1017完整解读:模型升级+Search/Fetch搜索API开放,Agent开发者要注意哪些坑
前端·网络·人工智能
原则猫9 小时前
UDP 到底怎么实现可靠的
前端
Java后端的Ai之路9 小时前
14、ReactJS - 路由(Router)
前端·react.js·状态模式
裕晟资质规划10 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
ShineWinsu10 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
月夏11 小时前
Vue3 转 React:18 项对照表 + 5 个必踩的坑(附 7 天上手路线)
前端
广州华水科技11 小时前
单北斗GNSS位移监测系统的应用与维护解析
前端
梦曦i11 小时前
uni-storage 0.1.0 发布:TTL过期管理+多实例隔离
前端·storage·uni-app x
猫头_12 小时前
AI 流式传输工程指南:模型吐出半截 JSON,前端如何边收边渲染?
前端·javascript·llm
console.log('npc')13 小时前
第 1 章 项目概述与环境搭建
前端·人工智能·大模型