美文网首页
几个前端构建工具的用法整理

几个前端构建工具的用法整理

作者: 柏丘君 | 来源:发表于2018-01-19 16:35 被阅读0次

本文整理几个前端工具的用法:Rollup、Gulp 和 Browserify。

1. Rollup 的使用

特性

  1. 下一代 JavaScript 打包工具
  2. Tree Shaking

安装

  1. 全局安装
npm install rollup -g
yarn global add rollup
  1. 在项目中安装
npm install rollup -D
yarn add rollup -D

指定打包的规范

Rollup 支持以下模块化规范:

  • AMD
  • CommonJS
  • ES6 Modules
  • IIFE
  • UMD

通过 -f 指令可以指定打包的规范,-f 指令是 --output.format 的缩写。

rollup main.js -f amd|cjs|es|iife|umd

配置文件

在命令行指定参数太麻烦,因此可以写在一个配置文件中。通过 -c 或者 --config 指令可以指定配置文件,默认使用 rollup.config.js 作为配置文件。
Rollup 在打包时会自行处理配置文件,因此在 rollup.config.js 中可以使用 export default 导出配置项。
使用 rollup -c 可以进行打包。

其他特性

Rollup 还有其他的一些特性,譬如插件机制,以及更详细的 API 使用,这方面的内容可以到 Rollup 的官网或者中文文档去查看。

常用用途

Rollup 打包后的代码更为纯粹,没有太多多余的东西,因此我常将 Rollup 用于 Node 代码中,其 Tree Shaking 特性可以帮助我们去除很多冗余代码,一般和 Gulp 和 Babel 结合使用。

2. Gulp 的使用

特性

  1. 基于 Task(任务)工作
  2. 插件丰富、配置方便

安装

  1. 全局安装
npm install gulp -g
yarn global add gulp
  1. 在项目中安装
npm install gulp -D
yarn add gulp -D

注:使用 Gulp 时需要同时在全局和项目中安装。

配置文件

默认情况下,Gulp 使用 gulpfile.js 作为配置文件,因此需要新建一个。

gulp.task

Gulp 是基于 Task 的,我们需要在 gulpfile.js 中指定不同的 Task,以完成不同的工作。
Gulp 要求至少提供一个默认的 Task(default)。
下面是一个配置了默认 Task 的文件:

const gulp = require("gulp");
gulp.task("default",() => {
    gulp.src("src/**/*.js")
        .pipe(gulp.dest("build"))
})

指定排除文件

如果不想 Gulp 编译某些文件,可以进行排除:

const gulp = require("gulp");
gulp.task("default",() => {
    gulp.src(["src/**/*.js","!src/lib/*.js"])
        .pipe(gulp.dest("build"))
})

指定依赖任务

在使用 gulp.task 时,还可以指定依赖的任务,这些任务将会在当前任务开始之前执行。

const gulp = require("gulp");
gulp.task("default",["test1","test2"],() => {
    gulp.src("src/**/*.js")
        .pipe(gulp.dest("build"))
})

gulp.task("test1",()=>{
    console.log("test1")
})

gulp.task("test2",()=>{
    console.log("test2")
})

注:task1task2 属于异步任务,因此无法保证 task1 一定会在 task2 之前执行。要想某个任务在另一个任务之前执行,可以将另一个任务写在依赖任务中:

const gulp = require("gulp");
gulp.task("default",["test2"],() => {
    console.log("end")
})

gulp.task("test1",()=>{
    console.log("test1")
})

gulp.task("test2",["test1"],()=>{
    console.log("test2")
})

gulp.watch

使用 gulp.watch 可以监听文件的变化,当文件发生变化时,就可以自动执行任务。

const gulp = require("gulp");
const del = require("del");
// 清除构建目录
gulp.task("clean",() => {
    del(["build/**/*"]);
})

// 编译
gulp.task("compile",["clean"],()=>{
    gulp.src(["src/**/*.js","!src/lib/*.js"])
    .pipe(gulp.dest("build"))
})

// 监控文件变化
gulp.task("autoWatch",()=>{
    return gulp.watch(["src/**/*.js","!src/lib/*.js"],["compile"])
})

gulp.task("default",["autoWatch"])

上例中,我们对文件内容进行了监听,当文件内容发生变化时,就会再次执行编译。

3. Browserify 的使用

特性

可以将 Node 上的模块移植到浏览器上使用,或者说,可以将 CommonJS 规范的模块转换成浏览器认识的模块。

安装

  1. 全局安装
npm install browserify -g
yarn global add browserify
  1. 在项目中安装
npm install browserify -D
yarn add browserify -D

使用

  1. 使用 Browserify 进行转换
browserify src/main.js -o build/bundle.js
  1. 浏览器模块化
browserify -r ./src/main.js:main -r ./src/test.js:custom-test > build/bundle.js

通过 文件名:模块名 指定导出的模块名。
然后可以在浏览器端通过 require 方法导入模块:

<script>
    const main = require("main")
    const test = require("custom-test")
    main()
    test()
</script>

通过 -r 参数,我们让浏览器具备了使用 require 方法导入模块的能力。

附:参考资料
Gulp 文档
附:Github 源码地址
https://github.com/charleylla/charley-learn-pack-tools

完。

相关文章

  • 几个前端构建工具的用法整理

    本文整理几个前端工具的用法:Rollup、Gulp 和 Browserify。 1. Rollup 的使用 特性 ...

  • 撩课-Web架构师养成系列(第三篇)-构建工具

    一、为什么要使用构建工具? 在前端项目中使用构建工具,主要是基于以下几个原因: (1) JavaScript和C...

  • gulp

    叫做前端自动化构建工具,此类工具还有:grunt前端自动化构建工具 是什么?答: 自动化 less sass ...

  • 有关 grunt --- 自动化构建工具的奇技淫巧

    之所以想写有关前端自动化工具的文章出于以下几个原因: 自动化构建工具对于前端开发的重要性:高效、减少重复性操作、各...

  • Webpack 打包工具

    webpack 现代化前端最流行的一款 构建打包工具 前端构建打包工具的发展历史 grunt gulp fis w...

  • JavaScript高级自动化构建工具

    随着发展,前端代码复杂度和规模增加,使用构建工具实现自动化的前端开发流程很有必要。前端自动化构建工具具有代码压缩,...

  • 前端构建工具gulp(配合browser-sync实现浏览器自动

    示例代码地址 1. 什么是前端构建,有哪些常见的前端构建工具? 实现前端代码的编译(sass、less)、压缩、测...

  • 深入 webpack 打包机制的介绍

    前言: 我最近需要整理一下 webpack 这个前端构建工具的相关知识,希望对前端工程化的和模块化有更多的理解,我...

  • FIS3和VueJS开发单页面应用

    FIS3是百度开发的一款前端构建工具。 FIS3 是面向前端的工程构建工具。解决前端工程中性能优化、资源加载(异步...

  • gulp && webpack

    gulp 前端自动化构建工具,此类的工具还有gruntwebpack 前端打包工具,打包:分析项目所依赖的内容,自...

网友评论

      本文标题:几个前端构建工具的用法整理

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