Webpack小教程

首先呢,我们先来认识一下它吧。。吼吼~

webpack是一个module bundler,我们暂且管他叫“模块管理工具”。

实现模块化的方法有很多,比如说使用script标签导入js模块,顺序不好把握且我们需要自己梳理可能的冲突和依赖;使用Commonjs规范来解决问题,它使我们在服务器端的模块得到了重用,但是在浏览器端,网络的请求都是异步的,无法并行的require多个module。ES6 modules的实现也只是一小部分,并且想要得到所有浏览器的支持,相比还是需要相当的一段时间。那么我们便引入webpack吧~

当然灵活的模块管理只是webpack的众多特性之一, 它同时支持commonjs和AMD规范(甚至混合的形式);它可以打成一个完整的包,也可以分成多个部分,在运行时异步加载(可以减少第一次加载的时间);依赖在编译时即处理完毕,可以减少运行时包的大小; Loaders可以使文件在编译时得到预处理,这可以帮我们做很多事情,比如说模板的预编译,图片的base64处理;丰富的和可扩展的插件可以适应多变的需求。是不是想赶紧拿住它,好滴,我们进入正题。。。

1、安装
打开一个目录  
npm install webpack –g
在项目中也要下载
npm install webpack --save-dev
2、创建一个初始化文件 npm init


想设置就可以设置,默认的话一直回车回车回车.....,最后输出yes,之后会在项目中生成一个package.json的文件,这是对项目的一个基本描述。


个人感觉没什么用吧~~

3、创建文件

Name.js

Var name=”你好”;

Module.exports = name;//将你想要暴露出去的提供一个方式,固定的

Entry.js

document.getElementById("app").textContent ="Hello";

4、创建一个html文件index.html,写一个id为app的div

5、执行打包命令webpack  ./js/entry.js  bundle.js


会在项目中生成bundle.js,打开文件后最后面会发现加入了entry.js中的内容


6、在html中引入bundle.js

7、打开浏览器查看页面

8、之后每一次修改,都要在命令行中执行webpack./js/entry.js bundle.js这句话后刷新页面(太麻烦了~~别急)

9、通过webpack引入css模块化

10、npm installcss-loader style-loader --save-dev

11、创建一个style.css


12、在entry.js中引入css

require("style!css!../css/style.css");

目录结构:


13、执行编译命令,打开网页查看,这个时候发现添加了一个灰色的背景


注意了,注意了~~~下面的配置
14、编写webpack配置文件,可以节省很多编译命令
根目录下创建一个webpack.config.js

module.exports={
	//1.入口文件
	entry:"./js/entry.js",
	//2.输出路径及文件 __dirname根目录
	output:{
		path:__dirname,
		filename:"bundle.js"
	},
	//3.依赖模块
	module:{
		loaders:[
			{test:/\.css$/,loader:"style!css"}
		]
	}
}




此时我们已经不需要再在entry.js中那样引入css了
require("./style.css");
命令行编译 输入webpack即可编译


15、调试代码,通过source-map调试
查看控制台sources
执行命令webpack --devtool source-map


在配置文件中配置直接生成source-map
添加devtool:”source-map”
//添加source-map   调试代码
devtool:"source-map",


在js文件中想要调试的地方添加断点输入:debugger;


在命令行中运行一下输入:webpack
会在浏览器刷新会看到直接跳到debugger处


16、webpack结合babel处理es2015(es6)

 在命令行中安装babel:

npm installbabel-core babel-loader babel-preset-es2015 --save-dev

 

再创建一个文件.babelrc的配置文件,是一个数组

{

“presets”:[“es2015”]

}

在配置文件中配置

添加一个{test:/\.js$/,loader:”babel”}

创建一个test.js,写一些标准的es6的语法

let name = “再见”;

Es6导出方法

Export default name;


在entry.js中导入

Import name from“./name”;

Import “./style.css”


就不要之前的require了(//var name = require("../js/name");
//require("../css/style.css");)这个不要了哈~~~
不用es6时把这些相关语句注释掉
命令行执行命令webpack

17、服务热替换
npm install webpack-dev-server --global
npm install webpack-dev-server --save-dev
webpack.config.js设置
//服务器
devServe:{
inline:true,
host:’localhost’,
port:8080
}
启动命令 webpack-dev-server --inline --hot

更改一下样式表,就可以看到实时效果了

找到package.json文件,中的scripts加入一条
"build": "webpack-dev-server"

在命令行中输入npm run build   
绿色文字要保持一致


在浏览器中输入2这个地址就可以实时刷新了

 

备注:终止命令行: Ctrl+c  c

 

基本配置ok了~~

 

在其他项目中引入3个文件




切记:将bundle.js引入到页面的最后面,不能放在前面。。不然会出大事的~~


像这样的第三方库就这样引入吧,因为它没有暴露的接口。。。忧伤~~~

马上就成功了哦!

 

项目根目录下打开命令行:

执行:webpack

npm run build

浏览器中打开提供的地址

 

So-  完工!

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Webpack 5的教程,我可以为您提供一些基本信息和指导。Webpack是一个模块打包工具,它可以将各种资源(例如JavaScript、CSS、图片等)打包成一个或多个文件,以优化网页加载速度。 以下是Webpack 5的一些重要特性和教程资源: 1. 模块联邦(Module Federation):Webpack 5引入了模块联邦的功能,允许多个独立的Webpack构建之间共享模块。这使得在大型项目中更容易实现微服务架构。您可以查阅Webpack官方文档中关于模块联邦的介绍和示例。 2. 改进的性能:Webpack 5在构建速度和输出文件大小方面进行了一些优化。它引入了持久缓存(persistent caching)功能,提高了构建速度。另外,Webpack 5还通过使用更先进的算法(如Tree Shaking、Scope Hoisting等)来减小输出文件的大小。 3. 新的插件系统:Webpack 5引入了一种新的插件系统,使得编写和使用插件更加简单和灵活。您可以查阅Webpack官方文档中关于插件系统的说明和示例。 对于Webpack 5的更详细教程和示例代码,您可以参考以下资源: - Webpack官方文档:Webpack官方文档提供了全面的关于Webpack 5的指南和示例。您可以访问官方文档并查找与您需求相关的章节和示例代码。 - CSDN:在CSDN上有很多Webpack 5的教程和示例代码,您可以通过搜索“webpack5教程”来查找相关资源。 - GitHub:许多开发者在GitHub上分享了关于Webpack 5的教程和示例项目。您可以在GitHub上搜索“webpack5 tutorial”来查找相关资源。 希望这些信息能够帮助到您!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值