大前端技术之webpack

举报
tea_year 发表于 2025/09/30 17:13:29 2025/09/30
【摘要】 Webpack 是基于 Node.js 的现代前端静态模块打包器,核心功能是将 JS、CSS、图片等多种资源视作模块,通过打包优化项目结构与性能,是 Vue 等框架开发大型应用的核心工具。 其核心优势显著:支持模块化开发,可将代码拆分为小模块便于维护,打包后减少 HTTP 请求次数,还能按需拆分避免文件过大;通过 loader 机制编译 ES6、TypeScript 等高级语法及 Sass

webpack入门

使用vue.js开发大型应用需要使用webpack打包工具,本节研究webpack的使用方法。

1.3.1 webpack介绍

image-20210111200413155.png

Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包。

从图中我们可以看出,Webpack 可以将js、css、png等多种静态资源 进行打包,使用webpack有什么好处呢?

1 、模块化开发

程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文件,减少了http的请求次数。

webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。

2 、 编译typescript、ES6等高级js语法

随着前端技术的强大,开发中可以使用javascript的很多高级版本,比如:typescript、ES6等,方便开发, webpack可以将打包文件转换成浏览器可识别的js语法。

3 、CSS预编译

webpack允许在开发中使用Sass 和 Less等原生CSS的扩展技术,通过sass-loader、less-loader将Sass 和 Less的 语法编译成浏览器可识别的css语法。

webpack的缺点:

1 、配置有些繁琐

2 、文档不丰富

1.3.2 安装webpack

1.3.2.1 安装Node.js

webpack基于node.js运行,首先需要安装node.js。

image-20210111200633439.png

为什么会有node.js?

传统意义上的 JavaScript 运行在浏览器上,Chrome 使用的 JavaScript 引擎是 V8,Node.js 是一个运行在服务端的框架,它的底层就使用了 V8 引擎,这样就可以使用javascript去编写一些服务端的程序,这样也就实现了用javaScript去开发 Apache + PHP 以及 Java Servlet所开发的服务端功能,这样做的好处就是前端和后端都采用javascript,即开发一份js程序即可以运行在前端也可以运行的服务端,这样比一个应用使用多种语言在开发效率上要高,不过node.js属于新兴产品,一些公司也在尝试使用node.js完成一些业务领域,node.js基于V 8 引擎,基于事件驱动机制,在特定领域性能出色,比如用node.js实现消息推送、状态监控等的业务功能非常合适。

下边我们去安装Node.js:

1 、下载对应你系统的Node.js版本:

https://nodejs.org/en/download/

image-20210111200750625.png

推荐下载LTS版本,本教程安装 9 .4.0。

2 、选安装目录进行安装

默认即可

安装完成检查PATH环境变量是否设置了node.js的路径。

3 、测试

在命令提示符下输入命令

node ‐v

会显示当前node的版本

1 .3.2.2 安装NPM

1 、自动安装NPM

npm全称Node Package Manager,他是node包管理和分发的工具,使用NPM可以对应用的依赖进行管理,NPM的功能和服务端项目构建工具maven差不多,我们通过npm 可以很方便地下载js库,打包js文件。

node.js已经集成了npm工具,在命令提示符输入 npm -v 可查看当前npm版本

image-20210111200842757.png

2 、设置包路径

包路径就是npm从远程下载的js包所存放的路径。

使用 npm config ls 查询NPM管理包路径(NPM下载的依赖包所存放的路径)

image-20210111200906665.png

NPM默认的管理包路径在C:/用户/[用户名]/AppData/Roming/npm/node_meodules,为了方便对依赖包管理,我 们将管理包的路径设置在单独的地方,本教程将安装目录设置在node.js的目录下,创建npm_modules和 npm_cache,执行下边的命令:

本教程安装node.js在D:\Program Files\nodejs下所以执行命令如下:

npm config set prefix "C:\Program Files\nodejs\npm_modules"

npm config set prefix "D:\nodejs\npm_modules" (更改本地仓库的位置)

npm config set cache "c:\Program Files\nodejs\npm_cache"

npm config set cache "D:\nodejs\npm_cache" (更改本地仓库的缓存位置)

此时再使用 npm config ls 查询NPM管理包路径发现路径已更改

image-20210111200921681.png

npm config set registry http://registry.npm.taobao.org
配置到此为止结束。

3 、安装cnpm

npm默认会去国外的镜像去下载js包,在开发中通常我们使用国内镜像,这里我们使用淘宝镜像

下边我们来安装cnpm:

有时我们使用npm下载资源会很慢,所以我们可以安装一个cnmp(淘宝镜像)来加快下载速度。

输入命令,进行全局安装淘宝镜像。

npm install -g cnpm --registry=http://registry.npm.taobao.org

安装后,我们可以使用以下命令来查看cnpm的版本

cnpm -v

image-20210111200951749.png

nrm ls 查看镜像已经指向taobao

image-20210111201009886.png

使nrm use XXX切换 镜像

如果nrm没有安装则需要进行全局安装:cnpm install -g nrm

4 、非连网环境安装cnpm

从本小节第 3 步开始就需要连网下载npm包,如果你的环境不能连网在老师的资料文件下有已经下载好的webpack相关包,下边是安装方法。

1 )配置环境变量

NODE_HOME = D:\Program Files\nodejs (node.js安装目录)

在PATH变量中添加:%NODE_HOME%;%NODE_HOME%\npm_modules;

2 )找到npm包路径

根据上边的安装说明npm包路径被设置到了node.js安装目录下的npm_modules目录。

可以使用npm config ls查看。

拷贝课程资料中的 npm_modules.zip到node.js安装目录,并解压npm_modules.zip覆盖本目录下的 npm_modules文件夹。

3 )完成上边步骤测试

cnpm -v

1.3.2.3 安装webpack

1 、连网安装

webpack安装分为本地安装和全局安装:

本地安装:仅将webpack安装在当前项目的node_modules目录中,仅对当前项目有效。

全局安装:将webpack安装在本机,对所有项目有效,全局安装会锁定一个webpack版本,该版本可能不适用某个项目。全局安装需要添加 -g 参数。

进入webpacktest测试目录目录,运行:


1 )本地安装:

只在我的项目中使用webpack,需要进行本地安装,因为项目和项目所用的webpack的版本不一样。本地安装就会将webpack的js包下载到项目下的npm_modeuls目录下。

在门户目录下创建webpack测试目录webpacktest01:

npm install --save-dev webpack 或 cnpm install --save-dev webpack

npm install --save-dev webpack-cli (4.0以后的版本需要安装webpack-cli)

2 )全局安装加-g,如下:

全局安装就将webpack的js包下载到npm的包路径下。

npm install webpack -g 或 cnpm install webpack -g

3 )安装webpack指定的版本:

本教程使用webpack3.6.0,安装webpack3.6.0:

进入webpacktest测试目录,运行:cnpm install --save-dev webpack@3.6.

全局安装:npm install webpack@3.6.0 -g或 cnpm install webpack@3.6.0 -g

2 、非连网安装

参考上边 “非连网环境安装cnpm”描述,将课程资料中的 npm_modules.zip到node.js安装目录,并解压 npm_modules.zip覆盖本目录下的npm_modules文件夹。

说明:已执行 “非连网环境安装cnpm”下的操作不用重复执行。

测试:

在cmd状态输入webpack,出现如下提示说明 webpack安装成功


image-20211224150240082.png

总结

Webpack 是基于 Node.js 的现代前端静态模块打包器,核心功能是将 JS、CSS、图片等多种资源视作模块,通过打包优化项目结构与性能,是 Vue 等框架开发大型应用的核心工具。
其核心优势显著:支持模块化开发,可将代码拆分为小模块便于维护,打包后减少 HTTP 请求次数,还能按需拆分避免文件过大;通过 loader 机制编译 ES6、TypeScript 等高级语法及 Sass、Less 等 CSS 预编译语言,适配浏览器兼容;搭配插件生态可实现热模块替换等功能,提升开发效率。
安装需先部署 Node.js(含 npm 包管理工具),可配置淘宝镜像(cnpm)加速下载,支持全局与本地两种安装方式,本地安装更适配多项目版本差异。虽存在配置繁琐、早期文档不足的缺点,但凭借强大的资源处理与优化能力,仍是前端工程化开发的主流工具。


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。