美文网首页
Rollup.js打包工具(支持typescript)无坑教程

Rollup.js打包工具(支持typescript)无坑教程

作者: 闲来微笔 | 来源:发表于2020-01-26 11:31 被阅读0次

    Rollup.js


        JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

        比webpack要轻量许多,用于弥补gulp的无tree-shaking是很好的选择,最大的用途是打包生产一个库文件

        打出来的包干净,没有其他冗余代码

    安装


    npm install --global rollup

    安装成功后,运行 rollup,若打印出使用说明则安装成功

    常用命令


    rollup [待打包文件路径] -f [指定格式]

    例 rollup src/main.js -f cjs

    -f 选项(--output.format 的缩写)指定了所创建 bundle 的类型

    bundle类型 --amd(异步模块定义),cjs(commonjs),es(将软件包保存为es模块文件),iife(适合作为<script>标签),umd(以amd、cjs、iife为一体)

    rollup [待打包文件路径] -o [包文件路径] -f [指定格式]

    例 rollup src/main.js -o

          bundle.js -f cjs

    配置文件


    简单命令

    在项目中创建一个名为rollup.config.js的文件,增加如下代码

        export default 

                { 

                    input: 'src/main.js',

                     output: { 

                                    file: 'bundle.js', 

                                    format: 'cjs' 

                                }

                 }

    使用 rollup -c 或 rollup --config ,自动寻找      rollup.config.js配置文件

    同样的命令行选项会覆盖配置文件中的选项

    可指定其他配置文件

    rollup --config rollup.config.dev.js

    具体配置项

    input

    入口文件路径

    output--{} or [{}]

    file--string

    输出文件

    format--string

    输出格式--amd/ es6 / iife / umd / cjs

    name--string

    当format为iife和umd时必须提供,将作为全局变量挂在window(浏览器环境)下:若name:"A"则window.A=...

    sourcemap--boolean

    生成bundle.map.js文件,方便调试

    plugins--string[]

    插件配置,常用插件列表参考下文

    external--string[]

    告诉rollup不要将指定的包打包,而作为外部依赖

    global--{}

    例 {'jquery':'$' } //告诉rollup全局变量$即是jquery

    插件


    通过相对路径,将一个入口文件和一个模块创建成了一个简单的 bundle。随着构建更复杂的 bundle,通常需要更大的灵活性——引入 npm 安装的模块、通过      Babel 编译代码、和      JSON 文件打交道等。

    常用插件

    rollup-plugin-json

        从json文件中读取数据

    rollup-plugin-node-resolve

        识别node_modules中的包

    rollup-plugin-commonjs

         将commonjs模块转换为es6

         node_modules中的包大部分都是commonjs格式的,要在rollup中使用必须先转为ES6语法

    rollup-plugin-babel

    rollup-plugin-typescript2

        打包typescript项目

        注意有坑--网上教程大多数写的使用rollup-plugin-typescript,但rollup-plugin-typescript使用后存在各种问题

    rollup-plugin-replace

        替换待打包文件里的一些变量

    rollup-plugin-uglify

        压缩包

        只支持es5

        不支持es6 +

    rollup-plugin-terser

        压缩包

        支持es6+

    package.json

        scripts

            "build": "rollup -c"  //配置指定的rollup执行命令

            运行 npm run build,不用每次输入一长串rollup命令

    rollup.watch

        Rollup 提供了 rollup.watch 函数,当它检测到磁盘上单个模块已经改变,它会重新构建你的文件束。 当你通过命令行运行 Rollup,并带上 --watch 标记时,此函数会被内部使用

        使用

            命令行 rollup -c --watch

            package.json 中配置scripts

    参考文档

    https://www.rollupjs.com/rollup.js中文网

    https://www.rollupjs.org/guide/en/官网

    相关文章

      网友评论

          本文标题:Rollup.js打包工具(支持typescript)无坑教程

          本文链接:https://www.haomeiwen.com/subject/wdsjthtx.html