热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rollup函数_Rollup学习系列3快速开始

Rollup学习系列1-tree-sharking的来源Rollup学习系列2-什么样的代码容易tree-sharking这篇手把手讲下怎么开始一个Rollup项目(咦,感觉有些多
80569879ff7c82aed71016fb0c177c05.png

Rollup学习系列1-tree-sharking的来源

Rollup学习系列2-什么样的代码容易tree-sharking

这篇手把手讲下怎么开始一个 Rollup 项目(咦,感觉有些多余了,想想还是写下吧)

开始装依赖

下面4个插件 是最常用的插件,具体作用在后面讲
npm i rollup --save-dev
npm i rollup-plugin-babel --save-dev
npm i rollup-plugin-commonjs --save-dev
npm i rollup-plugin-node-resolve --save-dev
npm i rollup-plugin-serve --save-dev

准备项目的目录结构

├── build # 编译脚本
│ └── rollup.config.js└── dev.js // 开发者模式
├── lib # 编译结果
│ └── index.js
├── example # HTML引用例子
│ └── index.html
└── src # ES6源码└── index.js
├── package.json

打包脚本

// package.json"scripts": {"dev":"rollup --config build/dev.js --watch","build": "npm run rollup","rollup": "rollup --config build/rollup.config.js",},

rollup.confing.js

import babel from 'rollup-plugin-babel';
import common from 'rollup-plugin-commonjs'
import resolve from 'rollup-plugin-node-resolve'export default {input: 'src/index.js',output: [{file: 'lib/index.js',name:"Demo",format: 'iife' // iife 表示立即执行函数},{format: 'esm',file: 'lib/index.esm.js',},{file: 'lib/index.umd.js',name:"Demo",format: 'umd' },{file: 'lib/index.amd.js',name:"Demo",format: 'amd' },{file: 'lib/index.cjs.js',name:"Demo",format: 'cjs' },],plugins: [resolve(), babel(), common()]
}
// dev.jsimport serve from 'rollup-plugin-serve'
import baseConfig from './rollup.config'const config = baseConfig;
config.plugins.concat([serve({open: true,port: 3001,contentBase: ['example', 'lib'] // 设置 exmaple的访问目录和dist的访问目录})
]);
export default config

好,这样简单的配置就可以干活了,是不是很简单啊,反正我是很喜欢这种简约的配置,特别在写 公共的 SDK,非常舒服

感觉这篇好水哦,哈哈,可能刚摸得人会用得上



推荐阅读
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
author-avatar
每天进步一点就好
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有