亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Rollup 插件入門:新手必讀教程

概述

Rollup 是一款强大的模块打包工具,支持 ES 模块并具备丰富的插件生态系统。本文将详细介绍 Rollup 的基本功能和优势,并指导你如何安装和配置 Rollup,帮助你快速上手。通过本文,你将学会如何使用 Rollup 插件入门。

Rollup 是什么

Rollup 是一款模块打包工具,主要用于将 JavaScript 模块打包成一个或多个文件,适用于库和应用。它支持 ES 模块标准,并且可以将现代 JavaScript 代码转换为可以被旧版浏览器支持的格式。

主要功能和优势

  • 模块化支持:Rollup 支持 ES 模块,可以处理 importexport 语句。例如,可以在一个文件中导出消息,然后在另一个文件中导入并使用该消息。

    // src/index.js
    export const message = 'Hello, Rollup!';
    
    // src/anotherFile.js
    import { message } from './index';
    
    console.log(message);  // 输出 "Hello, Rollup!"
  • 树形打包:Rollup 会分析代码依赖关系,将模块按依赖关系进行打包。

  • 代码分割:Rollup 可以将代码分割成多个文件,以优化加载性能。

  • 异步加载支持:Rollup 可以将异步加载的模块处理成动态导入,提高应用的加载速度。

  • 插件生态系统:Rollup 有着丰富的插件生态系统,可以支持各种构建需求。

  • 树摇:Rollup 可以删除未使用的代码,从而减少打包文件的体积。
安装和配置 Rollup

如何安装 Rollup

使用 npm 安装 Rollup 可以通过以下命令完成:

npm install --save-dev @rollup/cli

配置基础的 Rollup 项目

创建一个新的项目文件夹并初始化 npm:

mkdir my-rollup-project
cd my-rollup-project
npm init -y

安装 @rollup/plugin-node-resolve@rollup/plugin-commonjs 插件来支持非 ES 模块的依赖:

npm install --save-dev @rollup/plugin-node-resolve @rollup/plugin-commonjs

在项目根目录下创建一个 rollup.config.js 配置文件,设置输入输出选项:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';

export default {
  input: 'src/index.js',  // 入口文件
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs()
  ]
};

创建 src 目录和 index.js 文件:

mkdir src
touch src/index.js

index.js 文件中编写简单的代码:

// src/index.js
export const message = 'Hello, Rollup!';

使用 rollup 命令进行打包:

npx rollup -c

这将使用 rollup.config.js 中的配置将 src/index.js 文件打包到 dist/bundle.js

基本概念和术语

插件

Rollup 插件是扩展 Rollup 功能的模块。插件可以自定义 Rollup 的构建过程,比如转换代码、处理依赖、优化文件等。插件通过 plugins 数组添加到 Rollup 配置中。

示例插件:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';

export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs()
  ]
};

输入和输出选项

输入选项 (input) 指定入口文件,即构建的起点。

input: 'src/index.js',

输出选项 (output) 定义打包文件的输出路径和格式。

output: {
  file: 'dist/bundle.js',
  format: 'esm'
}

外部依赖

外部依赖是指项目中引用但不包含在最终输出中的外部模块。这些模块通常在运行时从全局作用域中加载。外部依赖可以通过 external 选项指定。

示例:

// rollup.config.js
export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  external: ['lodash'],  // 不打包 lodash 模块
  plugins: [
    resolve(),
    commonjs()
  ]
};
常见插件介绍

如何使用 babel 插件

Babel 插件可以将现代 JavaScript 转换成兼容旧版浏览器的代码。安装 Babel 插件:

npm install --save-dev @rollup/plugin-babel @babel/core @babel/preset-env

rollup.config.js 中配置 Babel 插件:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from '@rollup/plugin-babel';

export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs(),
    babel({
      presets: ['@babel/preset-env'],
      plugins: [],
      babelrc: false,  // 禁用 .babelrc 文件
      exclude: 'node_modules/**'  // 跳过 node_modules 文件
    })
  ]
};

示例代码展示如何使用 Babel 插件处理现代 JavaScript:

// src/index.js
export default ['a', 'b'].map(item => `Hello, ${item}`);

如何使用 ts 插件

TypeScript 插件可以将 TypeScript 代码编译成 JavaScript 代码。安装 TypeScript 插件:

npm install --save-dev typescript @rollup/plugin-typescript

rollup.config.js 中配置 TypeScript 插件:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import typescript from '@rollup/plugin-typescript';

export default {
  input: 'src/index.ts',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs(),
    typescript()
  ]
};

注意将入口文件从 index.js 改为 index.ts

示例代码展示如何使用 TypeScript 插件处理 TypeScript 代码:

// src/index.ts
export const message = 'Hello, TypeScript!';

如何使用 css 插件

Rollup 可以通过插件处理 CSS 文件。安装 rollup-plugin-postcss 插件来处理 CSS:

npm install --save-dev rollup-plugin-postcss

rollup.config.js 中配置 postcss 插件:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import postcss from 'rollup-plugin-postcss';

export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs(),
    postcss({
      extract: true,  // 提取 CSS 文件
      minimize: true, // 压缩 CSS
      sourceMap: true // 生成 source map
    })
  ]
};

src 目录下创建一个 style.css 文件:

/* src/style.css */
body {
  background-color: #f0f0f0;
}

index.js 文件中引用 CSS 文件:

// src/index.js
import './style.css';
构建和运行项目

如何执行构建命令

在命令行中执行构建命令:

npx rollup -c

这将使用 rollup.config.js 中的配置进行构建,生成 dist/bundle.js 文件。

如何调试构建错误

如果构建过程中遇到错误,Rollup 会输出错误信息和源代码的位置。可以通过以下几种方式调试:

  1. 检查配置文件:确保 rollup.config.js 中的配置正确无误。
  2. 检查入口文件:确保入口文件存在且路径正确。
  3. 检查外部依赖:确保所有外部依赖都已安装。
  4. 使用调试插件:某些插件提供调试功能,如 rollup-plugin-terser 提供 comments: true 选项以保留注释信息。

示例代码展示如何调试错误:

// 示例代码展示如何调试错误
// rollup.config.js
export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'esm'
  },
  plugins: [
    resolve(),
    commonjs()
  ]
};

如果构建时遇到错误,可能是因为 resolve 插件配置有误。确保 resolve 插件已正确导入并使用。

Rollup 发布和部署

如何发布项目到 npm

安装 lernanpm 工具:

npm install --save-dev lerna npm

创建 package.json 文件:

{
  "name": "my-rollup-project",
  "version": "1.0.0",
  "main": "dist/bundle.js",
  "scripts": {
    "build": "npx rollup -c"
  },
  "devDependencies": {
    "@rollup/plugin-node-resolve": "^5.2.1",
    "@rollup/plugin-commonjs": "^16.0.0",
    "@rollup/plugin-babel": "^5.0.0",
    "@rollup/plugin-typescript": "^5.0.0",
    "rollup-plugin-postcss": "^4.1.0",
    "@rollup/cli": "^2.36.2",
    "@babel/core": "^7.16.0",
    "@babel/preset-env": "^7.16.0",
    "typescript": "^4.3.5"
  }
}

发布项目到 npm:

npm login
npm publish

如何使用 Rollup 项目进行部署

部署 Rollup 项目可以使用静态文件托管服务,如 GitHub Pages 或 Netlify。

GitHub Pages

  1. 创建 GitHub Pages 仓库

    git clone https://github.com/username/username.github.io
    cd username.github.io
  2. 构建并部署项目
    npx rollup -c
    cp dist/bundle.js ./
    git add .
    git commit -m "Deploy to GitHub Pages"
    git push origin master

Netlify

  1. 创建 Netlify 项目

    • 登录 Netlify 控制台
    • 创建新网站
    • 将本地代码推送到 GitHub 或 GitLab
  2. 构建并部署项目
    • 在 Netlify 中设置构建命令:
      npx rollup -c
    • 构建的文件将自动托管在 Netlify。
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消