webpack4的基本使用

Webpack

将近期学习webpack过程总结记录下来

webpack是什么

	webpack是一个基于Node的前端项目构建工具,是一种**模块化**的解决方案,在webpack中一切都是模块,
	这意味着我们可以把任何**静态资源**分割成**可控**的模块,以供重复使用。

webpack的主要作用

  • 将所有静态资源进行合并压缩
  • 使用前端模块化处理项目中的文件依赖关系
  • 将高级JS语法转换成为低级可支持的JS语法
  • 在这里插入图片描述

webpack的安装

在自己多种下包方式的体验后,首推 cnpm!!!,个人学习webpack学习难点以及问题70%出在包上面吧 ? , 因为下载丢包会报一些奇怪的问题,而且下包在网络不是特别给力的时候是很耗时的。

安装包工具推荐?

cnpm -------- (淘宝镜像!!!) 墙裂推荐,特别快!
推荐指数 ⭐⭐⭐⭐⭐

npm安装插件是从国外服务器下载,受网络影响大,可能出现异常(速度较慢),如果npm的服务器在中国就好了,
 所以我们乐于分享的淘宝团队干了这事。“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),
 同步频率目前为 10分钟 一次以保证尽量与官方服务同步。” from官网;

Tips:cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm。

// 安装cnpm
npm install  cnpm  -g
  • -g 表示安装在全局,工具类型的包应安装在全局
  • install 可使用简写 i

yarn
推荐指数 ⭐⭐⭐⭐
在用cnpm之前用的是yarn,下载速度还可以,但是我在下载某一些丢包率高的包的时候,用的不顺心,然后就换了。

//  使用cnpm/npm 下载yarn
	cnpm  i  yarn  -g      
/*
	安装
	将yarn安装包的路径配置到环境变量的path中
	
	1. 按win+r输入sysdm.cpl
	2. 选择高级-环境变量
	3. 将yarn的bin目录添加到系统变量的path中
*/
//	使用 yarn 下载包
	yarn   add    包名
//使用 yarn  下载全局包
	yarn    global    add    包名 

npm
推荐指数 ⭐⭐⭐
下包速度较慢,指令与cnpm相同

安装webpack
介绍完安装包的一些工具,就可以正式的开始安装webpack啦~,以下步骤都是使用cnpm安装

  • webpack以及webpack-cli 安装在全局环境下,webpack打包需要webpack-cli
    cnpm i webpack webpack-cli -g(两个包也可分开下载)

  • 如果安装成功可以检查到 webpack 版本号
    webpack -v
    在这里插入图片描述

说明:查资料,上网查说是webpack3.0及其以上或4.0以下版本自带webpack-cli,不需要额外安装。而4.0以上则需要。具体是不是没试过,我下载的版本是4.0以上的,需要下载webpack-cli。

简单配置------webpack的基本使用
1) 新建文件夹,在文件夹中初始化package.json文件

 cnpm  init         ----  手动初始化
 cnpm  init  -y    ----  自动初始化	
  1. 在项目文件夹中创建以下子文件夹以及文件
    在这里插入图片描述
    webpack 默认入口文件是index.js
    webpack的配置是使用它的核心,主要有入口,输出文件,模式、 Loader、插件(Plugin)等几个部 分。
    webpack.config.js是它的配置文件
    在index.js中书写代码,通过执行webpack这个命令进行编译,会输出到dist下的main.js里面,main.js是webpack打包输出的,在4版本之前是bundle.js,配置也有不同的地方。

在输入webpack打包命令之前还需要配置一下webpack.config.js,不然会提示你配置一下模式
mode:有三个参数
-production:线上模式,打包代码全部进行了压缩
-development:开发模式 代码按原格式展示
-none
在这里插入图片描述
没配置的提示?
在这里插入图片描述
打包输出文件main.js
在这里插入图片描述
打包成功后的信息
在这里插入图片描述

webpack-dev-server

	这是一个运行在8080端口(端口可修改)的基于Express 的 node.js服务器。这个服务器会在内部调用Webpack。
	它的优势就是提供了额外的能力--类似可以刷新浏览器的“Live Reloading”,以及局部更新模块的模块热重载功能等等
  • 可以开启一个基于express的服务器
  • 可以将当前项目进行托管,托管的根目录就是项目的根目录。托管之后可以监听每个文件的打包编译的命令
  • 通过这个工具来实现打包编译的功能,与webpack命令用法完全一样。依赖于局部作用域的webpack、webpack-cli

注意:如果想要正常运行,在本地项目中,必须安装webpack、webpack-cli

下载webpack-dev-server

//1.在项目文件夹下安装webpack-dev-server  webpack webpack-cli
cnpm  i  webpack-dev-server  webpack  webpack-cli

设置参数

1) 在package.json文件中可做一下配置
"scripts":{
			"dev":"webpack-dev-server  --open   --port  12345  --hot   --inline  --contentBase src"
}
2) 也可在webpack.config.js中设置

在这里插入图片描述

open ---------------> 自动打开浏览器
port ----------------> 指定端口号
hot ------------------> 热重载
inline---------------> 自动刷新浏览器
contentBase-----> 指定静态资源托管

执行项目
npm run dev
写了一个简单的背景颜色测试demo (使用了jquery,需下载或引入jquery包)

在这里插入图片描述
npm run dev —> 页面在服务器上打开—>可以看到body的背景色为pink 即算成功~

可设置自动打开,也可以通过自己设置的端口号访问
在这里插入图片描述

Plugin

下面介绍一下插件~

html-webpack-plugin

	根据指定的**模板文件**生成一个内存中的html文件
	在生成好的html文件里面自动引入打包好的main.js文件

1)安装 cnpm i html-wepack-plugin
2) 在webpack.config.js中书写插件配置

① 引入该插件:
		const HtmlWebpackPlugin = require('html-webpack-plugin')

②			module.exports = {
  					mode:'development',
	  				plugins:[
	    				new HtmlWebpackPlugin({
	      				// 模板文件‘
	      				template:path.join(__dirname,'./src/index.html'),
	      				// 生成在内存中的文件名称, 一般都必须写index.html
	      				filename:'index.html'
	    				})
	  				]
			}

注意: 使用html-webpack-plugin这个插件之后,需要删除调用模板index.html里面的js文件导入

Loader

然后开始解决如何引入css文件啦~

	webpack默认只能打包处理 JS 类型的文件,无法处理 其他的非JS 类型的文件
	而且平时直接在html中引入css文件会发送二次请求。作为前端工作者当然要进行性能优化,减少请求啦嘻嘻~	

style-loader&less-loader

可以解析后缀为.css的文件,将css样式以内联样式的方式插入到html页面中;

1)下载相关loder加载器
cnpm i style-loader css-loader less-loader -D
2) 配置webpack.config.js
打开webpack.config.js这个配置文件,在里面新增一个配置节点

打开webpack.config.js这个配置文件,在里面新增一个配置节点
		module:{
			rules:[
				{test: /\.css$/,use: ['style-loader','css-loader']}  //解析css文件格式
											----  顺序不能交换!(待会会解释?)
				{test:/\.less$/,use:['style-loader','css-loader','less-loader']}  //解析less格式文件
			]
		}

module — 这个节点用于配置所有第三方模块加载器
所有第三方模块的匹配规则都写在rules中

sass-loader

	解析后缀为scss的文件

1)安装解析scss文件的加载器
cnpm i sass-loader node-sass --dev
sass-loader 依赖于node-sass,想使用必须得下载node-sass
❗ ❗❗ 在这里特别提一下,反正我下包在这里阵亡了,node-sass丢包几率90%,网速不是特别稳定的话,下载很容易出问题!!!,最后我是把node-modules中的包全部删除,然后一次性下载,才结束了这个问题,中间下载了无数次node-sass!!!?

2) 配置webpack.config.js

rules:[
        {
            test:/\.scss$/,
            use:['style-loader','css-loader','sass-loader']
        }
]

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值