IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> WebPack的基础配置介绍(一) -> 正文阅读

[JavaScript知识库]WebPack的基础配置介绍(一)

文章目录:

目录

文章目录:

一、WebPack 是什么?

1、为什么很多小伙伴都喜欢webpack?

2、webpack 与 其他打包工具有何区别、优势呢?

3、Webpack4 和 Webpack3的区别:

二、从零开始构建你自己的开发环境

1、webpack与webpack-cli的安装:

2、正式开始今天的小项目:

Step 01:初始化项目,生成 package.json 文件:

Step 02:局部安装webpack和初始配置webpack

下一期分享:


一、WebPack 是什么?

今天带大家了解Webpack(以版本 4 为准),相信很多小伙伴正在使用或正在了解的,这篇文章就很适合你了。博主会把自己对webpack的认识分享给大家,希望能够互相学习!!!

1、为什么很多小伙伴都喜欢webpack?

? ? ? ? 首先,webpack是一款前端非常优秀且实用的打包工具,可以将项目中的前端静态资源模块根据相互之间的依赖关系进行梳理并打包,并且梳理出文件资源依赖结构,让你的项目骨架一目了然;

? ? ? ? 其次,webpack富有高度的可配置性,满足项目中的任何需求,那么其中是如何进行配置使用的,我会 一 一?道来。

? ? ? ? 最后,webpack中含有很多丰富的插件(包括 official plugins 和 no official plugins),这些插件可以进行预处理、源码的多端适配、代码压缩、CDN缓存、模块开发等,那么具体有哪些插件、插件怎么去使用,博主会在接下来的几篇webpack专题中详细介绍,请各位小伙伴持续关注哦;

2、webpack 与 其他打包工具有何区别、优势呢?

????????除了以上提到的优势,还有以下几点:

1)webpack支持多模块标准:处理好不同类型的模块之间的依赖关系;

2)webpack具有完备的代码分割解决方案:对于分割打包后的资源,按优先级顺序加载,按需加载,首屏只需要加载必要部分;

3)webpack可以处理各种类型的资源:模板、图片、样式、文件资源等等;

????????在博主看来还应该有一点:

4)webpack具有完备的(资源依赖)逻辑体系 --> 便于梳理项目结构。

3、Webpack4 和 Webpack3的区别:

1)增加了mode属性:

????????对于不同的模式,那么针对体验的注重点也是不同的;

? ? ? ? --> 开发模式 development:

????????????????mode: development 注重开发阶段的体验;

? ? ? ? wp对开发模式提供的特性:

【1】浏览器调试工具?

【2】注释、开发阶段的详细错误日志和提示

【3】快速和优化的增量构建机制

? ? ? ? --> 线上模式 production

????????????????mode: production 专注于项目的部署

????????wp对线上模式提供的特性:

【1】开启所有的优化代码

【2】更小的bundle大小

【3】去除掉只在开发阶段运行的代码

2)webpack在loader,optimize上进行了很多改动:

module.loaders 改为 module.rules
module.loaders.loader 改成 module.loaders.use
loader的”-loader”均不可省略

3)插件优化

webpack4 删除了合并相同的文件CommonsChunkPlugin插件,
它使用内置API optimization.splitChunks 和 optimization.runtimeChunk,
这意味着webpack会默认为你生成共享的代码块。

其它插件变化如下:
   NoEmitOnErrorsPlugin 废弃,使用optimization.noEmitOnErrors替代,在生产环境中默认开启该插件。
   ModuleConcatenationPlugin 废弃,使用optimization.concatenateModules替代,在生产环境默认开启该插件。
   NamedModulesPlugin 废弃,使用optimization.namedModules替代,在生产环境默认开启。
   uglifyjs-webpack-plugin升级到了v1.0版本, 默认开启缓存和并行功能。

二、从零开始构建你自己的开发环境

1、webpack与webpack-cli的安装:

windows平台:?

????????利用 npm 全局安装 webpack 4 版本、webpack-cli 4 版本,

????????npm install webpack webpack-cli -g

Mac平台:

????????利用 npm 全局安装 webpack 4 版本、webpack-cli 4 版本,?

? ? ? ? yarn 安装:yarn global?add?webpack webpack-cli

全局安装后,项目中安装是本地局部安装:

全局安装后,npm安装时会自动从本地调用,会加快安装的速度,但是也有缺点:计算机的内存空间是比较宝贵的、所以电脑中如果做的项目多需要安装的环境较多,在本地全局安装后,会占用较多内存,推荐不要全局安装,小伙伴们也可以直接选择项目中安装(即本地局部安装)。【npm】

由于npm的服务器在国外,安装时会很浪费时间;国内的淘宝镜像服务器也可以使用,不过存在一些未知的不能兼容问题、又或是莫名其妙报错。【不推荐使用 cnpm】

以上各位小伙伴可以根据自己的喜好,自行选择,读者就不在此继续啰嗦了!

2、正式开始今天的小项目:

Step 01:初始化项目,生成 package.json 文件:

????????npm init,一路回车 Enter? ? ? ??

初始化package.json文件

直到你的项目文件夹下出现这个文件就说明成功了。?

Step 02:局部安装webpack和初始配置webpack

windows: npm install?webpack webpack-cli --save-dev

Mac: yarn add webpack webpack-cli webpack-dev-server --dev

?cmd命令提示符面板运行以上命令后:

package.json文件夹下的devDependences里面就会出现 刚刚安装的信息:

?

?

?

在source根目录下新建一个开发环境资源文件夹 src,用于存放一些开始所要用到的资源文件,

在src下面新建一个JS文件 index.js,输入console.log(hello world),

?

其次,在cmd中 执行webpack?src/index.js --output?dist/index.js,进行文件的打包输出。

?执行完上面的命令后,如果看到下图这样的结果,那么要恭喜你,Webpack的安装已经成功,你可以在你的命令终端执行有关于Webpack相关的命令:

图中的Warnning警告稍后会讲到,回到项目中,会发现项目根目下自动创建了一个/dist目录,而且该目录下包含了一个index.js文件:

执行完上面的命令之后,可以看到有相关的警告信息。
那是因为Webpack4增加了mode属性,用来表示不同的环境。
mode模式具有development,production 和 none三个值,其默认值是production 。也就是说,在执行上面的命令的时候,我们可以带上相应的mode属性的值,
比如说,设置none来禁用任何默认行为

?此时,我们对刚才的命令后面追加 --mode none,来设定打包时不采用任何模式。

执行后结果如何呢?请看下面:

?此时,我们可以看到打包后的代码不再具有production模式的格式。

?我们来测试一下JS到底成功打包了没有?在根目录下新建一个html文件,将JS文件以script脚本的方式引入,启动一个服务,在浏览器中打开html,结果如下图所示,JS已被成功打包。

下一期分享:

????????webpack的规范配置,webpack.config.js配置、单页面开发【单文件打包】、多页面开发【多文件打包】、glob配置动态入口打包多文件、哈希Hash、以及一些常用命令。

今天的小Demo分享到此结束,下期见哦 !!!

明天更精彩哦!喜欢的就点赞一下,没有关注博主的请支持一下哦!!!

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:43:35  更:2021-09-07 10:43:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:51:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码