搜索

查看: 3087|回复: 11

[JavaScript] Rollup 简易入门示例教程

[复制链接]
发表于 2023-5-4 11:50:09 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:50:09 3087 11 看全部
目录
  • Rollup介绍及使用
  • 1、Rollup 概述
  • 2、Rollup 快速上手
  • 3、Rollup 配置文件
  • rollup.config.js
  • 4、Rollup 使用插件
  • rollup.config.js
  • 5、Rollup 加载 NPM 模块
  • rollup.config.js
  • 6、Rollup 加载 CommonJS 模块
  • rollup.config.js
  • 7、Rollup 代码拆分
  • index.js
  • rollup.config.js
  • 8、Rollup 多入口打包
  • rollup.config.js
  • 方式1:
  • 方式2:
  • 9、Rollup 选用原则
  • 10、Parcel
    Rollup介绍及使用
    1、Rollup 概述
  • 仅仅是 ES Module 的打包器
  • Rollup 与 Webpack 作用类似,相比于Webpack,Rollup更为小巧
  • Rollup 中并不支持类似 HRM 特性
    初衷:提供一个充分利用ESM(ES Module)各项特性的高效打包器

    2、Rollup 快速上手
    安装:yarn add rolluo --dev
    用法:
        yarn rollup  //不传递任何参数的情况下,打印Rollup的帮助信息
        yarn rollup ./src/index.js --format iife //执行index.js文件并以iife(自调用函数)的方式输出(--format指定输出格式)
        yarn rollup ./src/index.js --format iife --file dist/bundle.js //输出文件到dist/bundle.js
    默认开启chunk去掉多余代码,优化输出结果

    3、Rollup 配置文件



    rollup.config.js
    export default {
    input: 'src/index.js',
        output: {
            file: 'dist/bundle.js',
            format: 'iife'
        }
    }

    4、Rollup 使用插件
    插件是Rollup的扩展途径
    rollup.config.js

    5、Rollup 加载 NPM 模块
    Rollup默认只能根据文件路径加载本地的文件模块,第三方模块不能直接通过模块名称去导入
    rollup-plugin-node-resolve:安装后Rollup可直接通过模块名称导入模块
    安装:yarn add rollup-plugin-node-resolve --dev
    rollup.config.js
    import resolvefrom 'rollup-plugin-node-resolve'
    export default {
    input: 'src/index.js',
        output: {
            file: 'dist/bundle.js',
    format: 'iife'
        },
        plugins: [
            resolve()
        ]
    }

    6、Rollup 加载 CommonJS 模块
    rollup-plugin-commonjs:因为Rollup默认只能处理ESM模块,使用这个插件Rollup就可以处理CommonJS
    安装:yarn add rollup-plugin-commonjs --dev
    rollup.config.js
    import commonjsfrom 'rollup-plugin-commonjs'
    export default {
    input: 'src/index.js',
        output: {
            file: 'dist/bundle.js',
    format: 'iife'
        },
        plugins: [
            commonjs()
        ]
    }

    7、Rollup 代码拆分
    运行:yarn rollup

    index.js
    import('./logger').then(({ log }) => {
        log('code splitting~')
    })
    rollup.config.js
    export default {
            input: 'src/index.js',
              output: {
                  dir: 'dist',
                  format: 'amd'
      }
    }

    8、Rollup 多入口打包
    多入口打包内部会自动提取公共模块,也就是说内部会使用代码拆分
    rollup.config.js
    方式1:
    export default {
    input: ['src/index.js', 'src/album.js'],
        output: {
            dir: 'dist',
            format: 'amd'
        }
    }

    方式2:
    export default {
    input: {
            foo: 'src/index.js',
            bar: 'src/album.js'
        },
    output: {
    dir: 'dist',
            format: 'amd'
        }
    }

    9、Rollup 选用原则
    Rollup优势:
        输出结果更加扁平(执行效率更高)
        自动移除未引用的代码
        打包结果依然完全可读(和手写代码一致)
    Rollup缺点:
        加载非ESM的第三方模块比较复杂(需要配置一大堆插件)
        模块最终都被打包到一个函数中,无法实现HMR
        浏览器环境中,代码拆分功能依赖AMD库
    选用:
        开发应用程序    选用Webpack,大而全
        开发框架或类库  选用Rollup,小而美

    10、Parcel
    零配置的前端应用打包器
    安装:
    yarn add parcel-bundler --dev
    运行:
    yarn parcel src/index.html
    //index.html为入口文件
    优势:
    支持自动安装依赖 支持动态导入 相同体量下,Parcel比Webpack打包要快,因为Parcel使用的是多进程同时工作,充分发挥了多核CPU的性能(Webpack也可以使用happypack插件实现多进程)
    以上就是Rollup 简易入门示例教程的详细内容,更多关于Rollup 入门教程的资料请关注知鸟论坛其它相关文章!
  • 回复

    使用道具 举报

    发表于 2023-6-28 17:07:46 | 显示全部楼层
    我是的十八簿 2023-6-28 17:07:46 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    发表于 2023-6-28 19:21:45 | 显示全部楼层
    123456848 2023-6-28 19:21:45 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-28 23:22:44 | 显示全部楼层
    惜颜705 2023-6-28 23:22:44 看全部
    楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
    回复

    使用道具 举报

    发表于 2023-6-29 14:36:07 | 显示全部楼层
    风吹吹蛋蛋疼风w 2023-6-29 14:36:07 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 17:25:24 | 显示全部楼层
    向往草原403 2023-6-29 17:25:24 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 22:43:01 | 显示全部楼层
    Gordon520 2023-6-29 22:43:01 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 00:08:22 | 显示全部楼层
    墙和鸡蛋 2023-6-30 00:08:22 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    回复

    使用道具 举报

    发表于 2023-7-3 12:23:14 | 显示全部楼层
    无人岛屿颈 2023-7-3 12:23:14 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-7-3 14:05:13 | 显示全部楼层
    ffycxyw2274436 2023-7-3 14:05:13 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 知鸟论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表