使用rollup打包应用

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码。他与webpack的最大区别如下:

 特性:
       rollup 所有资源放同一个地方,一次性加载,利用 tree-shake特性来  剔除未使用的代码,减少冗余
       webpack 拆分代码、按需加载  webpack2已经逐渐支持tree-shake
   rollup:
     1.打包你的 js 文件的时候如果发现你的无用变量,会将其删掉。
     2.可以将你的 js 中的代码,编译成你想要的格式
   webpack:
    1.代码拆分
    2.静态资源导入(如 js、css、图片、字体等)
    拥有如此强大的功能,所以 webpack 在进行资源打包的时候,就会产生很多冗余的代码。

好了,接下来就使用rollup来打包一个员工模型。
首先通过npm init初始化项目;
创建入口文件main.ts

export default class Staff {
    private name: String;
    private age: Number;
    private sex: String;
    private skill: String;
    constructor(){
        this.name = '';
        this.age = 0;
        this.sex = '';
        this.skill = '';
    }
    //实用技能技能
    useSkill(){
        console.log('我的技能是:',this.skill);
    }
    //设置技能
    setSkill(skill){
        this.skill = skill;
    }
    //设置员工属性
    setStaff(config:Object){
        for(let key in config){
            this[key] = config[key];
        }
    }
}

接下来就是最重要的rollup配置项,在这里你可以任意的配置出你想要的输出文件,我的rollup.config.js如下:

import commonjs from 'rollup-plugin-commonjs';
import resolve from 'rollup-plugin-node-resolve';
import {terser} from 'rollup-plugin-terser'
import babel from "rollup-plugin-babel";
import typescript from "rollup-plugin-typescript";
import sourceMaps from "rollup-plugin-sourcemaps";
import json from 'rollup-plugin-json'
export default {
    input:'src/main.ts', //入口
    output: {
        name: 'Staff', //实例化的类名称
        file: 'dist/Staff.js',//输出路径
        format: 'iife',//一个自动执行的功能,适合作为<script>标签
    },
    plugins: [
        commonjs(), // 兼容cjs
        terser(), // 压缩
        babel({
            exclude: 'node_modules/!**',
        }),// 配置babel,将es6转为es5
        typescript({
            exclude: "node_modules/**",
            typescript: require("typescript")
        }),
        sourceMaps(), // 支持ts
        json(), // 支持json导出
    ]
}

最后下载你所需要的依赖包,我的package.json如下:

{
  "name": "rollup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "rollup -c rollup.config.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.10.2",
    "rollup": "^2.52.7",
    "rollup-plugin-babel": "^4.4.0",
    "rollup-plugin-commonjs": "^10.1.0",
    "rollup-plugin-json": "^4.0.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-sourcemaps": "^0.6.2",
    "rollup-plugin-terser": "^7.0.2",
    "rollup-plugin-typescript": "^1.0.1",
    "tslib": "^2.0.1",
    "typescript": "^4.3.5"
  }
}

最后执行build命令即可得到你想要的js文件。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rollup 是一个 JavaScript 模块打包器,它主要用于打包 JavaScript 应用程序或库。它通常用于打包 Node.js 应用程序和库,但是也可以用于打包浏览器端应用程序。 Rollup 不支持直接打包 HTML 文件,但是可以使用插件来处理 HTML 文件。下面是一些常用的 Rollup 插件,可以帮助你打包 HTML 文件: 1. rollup-plugin-html:这个插件可以在打包过程中将 HTML 文件转换为 JavaScript 模块。它还支持将 CSS 文件内联到 HTML 文件中。你可以使用这个插件来打包单个 HTML 文件或多个 HTML 文件。 2. rollup-plugin-terser:这个插件可以在打包过程中压缩 JavaScript 代码和 HTML 内容。它可以帮助你减小文件大小并提高网站性能。 3. rollup-plugin-posthtml:这个插件可以在打包过程中使用 PostHTML 处理 HTML 文件。它支持使用各种插件来转换 HTML 内容,例如添加 CSS 前缀、压缩 HTML、优化图像等。 使用 Rollup 打包 HTML 文件的具体步骤如下: 1. 安装 Rollup 及相关插件: ``` npm install rollup rollup-plugin-html rollup-plugin-terser rollup-plugin-posthtml --save-dev ``` 2. 创建一个 Rollup 配置文件: ``` // rollup.config.js import html from 'rollup-plugin-html'; import { terser } from 'rollup-plugin-terser'; import posthtml from 'rollup-plugin-posthtml'; export default { input: 'src/index.js', output: { file: 'dist/bundle.js', format: 'iife' }, plugins: [ html({ include: '**/*.html' }), terser(), posthtml() ] } ``` 3. 在 HTML 文件中使用 JavaScript 模块: ``` <!DOCTYPE html> <html> <head> <title>My App</title> </head> <body> <script type="module" src="./dist/bundle.js"></script> </body> </html> ``` 4. 运行 Rollup 命令进行打包: ``` rollup -c ``` 以上就是使用 Rollup 打包 HTML 文件的基本步骤。需要注意的是,如果你的应用程序依赖于其他文件(例如 CSS、图像等),则需要在 Rollup 配置文件中添加相应的插件来处理这些文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值