1. 什么是webpack?

webpack

简介

  1. 首先,他是一个工具,就像扳手螺丝刀,等一系列工具.
    工具的作用就是让我们更方便,更快捷方便的完成我们想做的事
  2. webpack的作用是文件打包,好!那么问题又来了,什么是打包?
  3. 打包”,如何理解? 假设我们需要寄快递。我们将许多的物品都放进了一个纸皮箱,然后进行封箱。 这就是打包。 对应到前端开发来说,就是将很多的的 css文件,js文件,图片等“物品”,全都写进一个js文件,而不是在一个html页面通过script,link标签去引入多个静态资源。
  4. 而且我们的这个打包之后,还有更加强大的作用,我们打包的文件,如果版本不合适,我们的工具还可以帮助我们进行调整.
  5. 总而言之,webpack方便而又强大!!!
  6. webpack模块化,其实不同的css,不同的js就是一个模块。
比如说,一个index.html,通常会有一个index.css,
一个index.js,还有其他的css,js。
这些不同的文件都可以看做不同的模块。
不同的模块有各自的作用。

总结来说:用这个工具,帮助我们将不同的资源和文件,进行打包,也就是合并在一个文件里面。
但是不仅仅如此,它还附加了一些功能。
例如:
1.CSS 预处理。将 Less, Sass 编译成css
2.ES6 语法 转成 ES5
webpack 是一种前端资源构建工具,一个静态模块打包器


2. 学习webpack使用的环境参数

node.js安装

webpack安装

  • Webpack 4.26版本以上
  1. 打开cmd命令行
  2. 输入命令 npm install webpack webpack-cli -g

3. 学习webpack的必备技能

  • 基本Nodejs知识和Npm指令
  • 操作终端我们需要用到Npm指令
  • 熟悉Es6语法

4. 为什么使用webpack

  1. 文件依赖关系错综复杂
  2. 静态资源请求效率低
  3. 模块化支持不友好
  4. 浏览器对高级JavaScript特性兼容度较低
<link rel='stylesheet' href='./index.less'>无法识别

我们就要使用我们的打包工具,进行重新加载编译。实际就是将浏览器不认识的语法编译成浏览器认识的语法。
例如:
less编译成cssES6 语法 转成 ES5等等。

5. 如何使用webpack

在VScode中打开终端,
使用npm init初始化
初始化后进行一次命名
后面全部按回车使用默认选项
然后使用npm i webpack webpack-cli -g全局安装
然后使用npm i webpack webpack-cli -D全局安装

6. webpack五个核心概念

  1. 入口(entry)
  • 入口起点(entry point) 指示 webpack 应该
    使用哪个模块来作为构建其内部 依赖图(dependency graph) 的开始.

  • webpack从起点文件开始,从起点寻找直接或间接依赖的其它所有的依赖,包括JS、CSS、图片资源等,作为将来打包原始数据.

默认值是 ./src/index.js,但你可以通过在 webpack configuration 中配置 entry 属性来指定一个(或多个)不同的入口起点。例如:

webpack.config.js

module.exports = {
  entry: './path/to/my/entry/file.js',
};
  1. 输出(output)
输出(Output)指示 webpack 打包后的资源 
bundles 输出到哪里去,以及如何命名。
出口一般包含两个属性:path和filename。
用来告诉webpack打包的目标文件夹,以及文件的名称。
目的地也可以有多个。
  1. 加载器(loader)
Loader 让 webpack能够去处理那些非 JavaScript 文 件
webpack本身只识别Js文件,如果要加载非JS文件,
必须指定一些额外的加载器(loader),例如css-loader。
然后将这些文件转为webpack能处理的有效模块,
最后利用webpack的打包能力去处理。
  1. 插件(plugins)
插件可以扩展webpack的功能,
让webpack不仅仅是完成打包,
甚至各种更复杂的功能,
或者是对打包功能进行优化、压缩,提高效率
  1. 模式Mode
    模式(Mode)指示webpack使用相应模式的配置.
选项 特点
development 能让代码本地调试 运行的环境
production 能让代码优化上线 运行的环境

7. webpack初始化配置

创建一个空目录

  1. 初始化 package.json
输入指令: npm init

环境初始化

  1. 下载并安装 webpack
    自动生成依赖
输入指令: 
	全局安装	npm install webpack webpack-cli -g 
	本地安装	npm install webpack webpack-cli -D

8.编译打包应用

  1. 创建文件
    创建文件
    在我们的webpack文件夹内创建一个src目录,
    在里面创建一个index.js的文件
    打开新终端输入
  2. 运行指令

开发环境指令

webpack src/index.js -o build –mode=development

功能:webpack 能够编译打包 js 和 json 文件,
并且能将 es6 的模块化语法转换成 浏览器能识别的语法。

生产环境指令:webpack src/js/index.js -o build –mode=production

功能:在开发配置功能上多一个功能,压缩代码。

  1. 总结

webpack 能够编译打包 js 和 json 文件。
能将 es6 的模块化语法转换成浏览器能识别的语法。
能压缩代码。

  1. 留下的问题

不能编译打包 css、img 等文件。
不能将 js 的 es6 基本语法转化为 es5 以下语法。

9.注意!!!

在输入开发环境指令时,如果报错,首要查看打包文件路径!!!

10.每日总结

  • 今天对webpack有了一个基本的了解
  • 我们知道webpack是一个功能强大的打包工具
  • 它能合并打包我们的各种文件
  • 并且我们学会了如何使用它,
  • 了解到了它的五个核心概念以及对它们的认识.
  • 还学会了webpack初始化配置

今日的webpack学习到这里啦!
加油!明天更努力!


版权声明:本文为yuan_xiaoxin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/yuan_xiaoxin/article/details/117768867