Rollup.js 简介

发布时间 作者

Introduction to Rollup.js image

Rollup 是一款下一代 JavaScript 模块打包器。您可以使用它使用 ES2015 模块构建您的应用程序或库,然后有效地将它们捆绑到单个文件中。

这有助于解决脚本规模不断扩大和复杂性不断增加的问题。它使我们能够将程序划分为模块,以便我们可以将它们组织到不同的文件和目录中。

这些自包含的代码块提供不同的功能,我们可以轻松地使用、交换和删除它们,这意味着提高了代码的可读性、可维护性和可重用性。

Rollup.js 概述

Rollup 是一款 JavaScript 模块打包器,它使您能够使用 ES2015 模块编写应用程序代码,然后将所有模块连接到单个文件中,以减少 HTTP 请求的数量并提高页面加载时间。Rollup 旨在快速运行,并生成比任何其他模块打包器更干净、更高效的代码。

通过使用 Rollup,您将受益于 ES2015 静态分析,这意味着您的导入模块将在编译时(执行之前)解析,并且任何未使用的导出将在程序运行之前删除,因此它将节省大小并减少脚本的开销。

另一个很棒的功能是 Tree-shaking,它会导致从捆绑包中排除未使用的导出。因此,与其导入整个模块,Tree-shaking 使您能够仅导入所需的代码段,这将使您的捆绑包更小。

看一下以下示例,假设我们在 **greetings.js** 文件中有两个函数

export function sayHello () {
return "Hello!";
}
 
export function sayHi () {
return "Hi!";
}

然后,我们在 **app.js** 中导入所有这些函数,然后我们只使用 **sayHello** 通过将其记录到控制台中

import * as Greetings from './greetings.js';
console.log( Greetings.sayHello() ); // Hello!

注意输出将是什么,通过利用 Tree-shaking,Rollup 将排除 **sayHi** 函数,因为它没有被使用

function sayHello () {
return "Hello!";
}
 
console.log( sayHello() ); // Hello!

请注意,Rollup 是一款模块打包器,但它不是 ES2015 到 ES5 转换器,因此它不会将您的 ES2015 类语法编译为 ES5 语法。要将 ES2015 编译为 ES5,您可以使用 bable 或 **buble**,它是由 Rollup 的创建者 Rich Harris 开发的另一种 ES2015 编译工具。

Rollup 与 Laravel Elixir

Laravel 5.3 默认使用 Webpack,但切换到 Rollup 非常容易。首先,安装 Elixir Rollup 扩展

npm install laravel-elixir-rollup-official --save-dev

然后,在您的 gulp 文件中使用 Rollup 任务,如下所示

elixir(mix => {
mix.rollup('app.js');
});

Rollup 任务接受相对于 resources/assets/js 目录的文件数组,并在 public/js 目录中生成单个文件。如果您想自定义输入和输出文件路径,请将输入文件的路径作为第一个参数传递,并将输出路径作为第二个参数传递,**请注意**,您应该以 **./** 开头路径以指示 Elixir 忽略任何默认基本目录

elixir(function(mix) {
mix.rollup(
'./resources/assets/js/app.js',
'./public/dist'
);
});

**注意**,Elixir Rollup 扩展使用 **buble** 作为依赖项。因此,Elixir 将通过自动使用 buble 将 ES2015 编译为 ES5 来为您提供帮助!

最后,如果您想覆盖默认的 Rollup 配置,您有两个选择,一个是创建项目根目录中的 rollup.config.js 文件,另一个选择是通过将 Rollup 配置对象作为第四个参数传递给 Rollup Elixir 任务。

就是这样,如果您正在寻找一款快速、干净且高效的模块打包器,请在您的下一个项目中尝试一下 Rollup

Diaa Fares photo

Laravel Artisan、Web 开发人员、技术爱好者

Cube

Laravel 时事通讯

加入 40,000 多名其他开发人员,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

来自 No Compromises 播客的两位经验丰富的开发人员 Joel 和 Aaron 现在可以为您的 Laravel 项目提供服务。 ⬧ 固定费率为每月 7,500 美元。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100%退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

让经验丰富的 Laravel 开发人员(具有 4-6 年的经验)以每月 2,500 美元的价格为您的项目增值。获得 160 小时的专项专业知识和 15 天的免费试用期。立即安排电话咨询!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 电子商务。一个开源软件包,将现代无头电子商务功能的力量带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动套件

SaaSykit 是一款 Laravel SaaS 启动套件,包含运行现代 SaaS 所需的所有功能。支付、精美结账、管理面板、用户仪表板、身份验证、现成组件、统计数据、博客、文档等。

SaaSykit:Laravel SaaS 启动套件
Rector logo

Rector

您无缝升级 Laravel 的合作伙伴,降低成本,加速创新,为成功企业提供服务。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解灵活、现代的 MongoDB 数据库如何改变您的 Laravel 应用程序。

MongoDB

最新内容

查看全部 →
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一款简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包向您的 Laravel 应用程序添加评论

阅读文章