来聊聊webpack吧!

在前端开发中,往往会用到一些构建工具,构建工具有很多,比如Npm
Script任务执行者、Grunt也是任务执行者、Gulp基于流的自动化构建工具、Fis3百度构建工具、Webpack打包模块化JavaScript工具和Rollup模块打包工具。
今天,我们来聊聊最耳熟能详的webpack构建工具。

一、全面理解webpack

1、什么是webpack?

webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理,它能有Grunt或Gulp所有基本功能。
webpack的官网是 https://webpack.github.io/ ,文档地址是https://webpack.github.io/docs
官网对webpack的定义是MODULE BUNDLER,他的目的就是把有依赖关系的各种文件打包成一系列的静态资源。 请看下图:
在这里插入图片描述
Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

2、webpack的优势

其优势主要可以归类为如下几个:

  • webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。
  • 支持很多模块加载器的调用,可以使模块加载器灵活定制,比如babel-loader加载器,该加载器能使我们使用ES6的语法来编写代码;less-loader加载器,可以将less编译成css文件;
  • 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。
  • 可以通过配置打包成多个文件,有效的利用浏览器的缓存功能提升性能。
3、webpack较之其他类似工具有什么不同?
  • 有同步和异步两种不同的加载方式
  • Loader,加载器可以将其他资源整合到JS文件中,通过这种方式,可以讲所有的源文件形成一个模块
  • 优秀的语法分析能力,支持 CommonJs AMD 规范
  • 有丰富的开源插件库,可以根据自己的需求自定义webpack的配置
4、webpack的目标是什么?
  • 将依赖的模块分片化,并且按需加载
  • 解决大型项目初始化加载慢的问题
  • 每一个静态文件都可以看成一个模块 可以整合第三方库 能够在大型项目中运用
  • 可以自定义切割模块的方式

二、webpack的安装

1、全局安装
npm install -g webpack webpack-cli
2、安装后查看版本号
webpack -v

此时,我们的电脑上就安装好了webpack了,接下来让我们再看看在项目中怎么用吧。

三、初始化项目

1、创建webpack文件夹

进入webpack目录,执行命令

npm init -y
2、创建src文件夹
3、src下创建common.js
exports.info = function (str) {
    document.write(str);
}
4、src下创建utils.js
exports.add = function (a, b) {
    return a + b;
}
5、src下创建main.js
const common = require('./common');
const utils = require('./utils');
common.info('Hello world!' + utils.add(100, 200));

那么好,此时webpack已经在项目中添加成功了。

webpack的核心是什么呢?

  • 入口(entry),指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。
  • 出口(output),告诉 webpack在哪里输出它所创建的 bundles,以及如何命名这些文件。
  • loader, 将所有类型的文件,转换为应用程序的依赖图(和最终的bundle)可以直接引用的模块。
  • 插件, 在 webpack 打包过程中增加额外的功能。

好的,以上就是我对于webpack的理解了,希望大家共同进步,共同成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值