webpack学习

Posted 落落月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webpack学习相关的知识,希望对你有一定的参考价值。

1·生成package.json,用于存放所有依赖名称版本等信息:

命令行:npm init

 

2.在对应项目中安装webpack

命令行:npm i webpack -D

然后尝试执行webpack打包功能

命令行:npx webpack --mode development   (npx是node v5.2.0内置的包执行器,简化了包的命令执行过程)

上述命令会提示:

webpaclk-cli被webpack分离出去了,webpack-cli的作用是封装了所有与cli处理相关的的代码,并捕获所有选项操作传递给webpack

然后输入yes直接安装webpack-cli

 

再次输入命令:npx webpack --mode development

还是报错:

提示入口模块未找到,这是因为webpack打包的默认入口文件夹是./src,因此需要在项目目录下创建src文件夹,当然,仅仅是创建文件夹是不行的,还要有被打包的文件。

输入命令:mkdir src

在src文件夹下创建index.js文件

 

再再次输入命令:npx webpack --mode development 

依旧可能会报错,具体忘了什么错误,就是提示无法找到webpack模块,这个时候需要在全局安装webpack模块或者全局安装webpack-cli

命令:npm i webpack -g

 

再再再次输入:npx webpack --mode development 

这次就能执行成功了,而且如果本地不存在dist文件夹,会自动生成dist文件夹并且生成打包好的main文件,因为webpack的默认输入就是dist/main.js

 

3.监听文件更改:

命令行:npx webpack --mode development --watch

花了62ms打包了文件,这时候我们尝试更改src中的index文件,然后保存。

这是保存后生成的命令提示,表示监听打包用了40ms,包括各种更改信息等。

 

4.开发过程需浏览器自动刷新功能来减少开发不必要开销,介绍一下:

webpack-dev-server,一个基于express.js的开发服务器,提供实时的浏览器刷新功能,当然也包括了上述的监听文件功能。

命令行:npm i webpack-dev-server -D

 

安装成功之后执行启动webpack-dev-server

命令行:npx webpack-dev-server --mode development --content-base ./dist

contentBase解释:webpack-dev-server监听的入口文件index.html默认为根目录下的index.html,但如果项目文件过大,不可能把index.html放在根目录,因此需要content-base指定监听的bundle.js

如果不写content-base,也能编译成功,不会报错,但是无法在浏览器中显示index.html,如下:

表示无法找到bundle.js,也就无法生成对应的html页面,这时我们将content-base指定到dist文件夹,就能生成对应的页面了。

 

直接在local host:8080/即可访问页面

 

webpack处理页面各种编码及预处理问题,引入loader(加载器):

1.例如处理jsx文件,现在index.js文件中写入react语法:

命令行启动webpack-dev-server会报错如下:

没错,缺少适当的加载器来处理这类文件,需要:

命令行:npm i -D "babel-loader@^8.0.0-beta" @babel/core @babel/preset-react

其中,babel-loader用于将es6语法转为es5,避免某些浏览器的不支持情况,@babel/core一般用于转码(具体还没了解),@babel/preset-react用于将jsx语法转为createElement。

 

此时执行命令:npx webpack-dev-server --mode  development --content-base ./dist --module-bind "js=babel-loader?presets[]=@babel/preset-react" (注:window版本需要使用双引号)

这个时候就能成功编译了,而后的各种loader都类似,没太多差别。

 

但是以上都是简单的命令行,但项目需要大量的loader进行文件处理,如果使用命令行则会出现极长的命令,很麻烦。

所以出现了webpack.config.js,对webpack的各种工程进行参数的配置。

 

webpack.config.js参数详解:

1.先在项目根目录创建webpack.config.js,webpack默认读取该文件的配置。

 

以上是关于webpack学习的主要内容,如果未能解决你的问题,请参考以下文章

Webpack学习笔记

webpack学习笔记一

深入学习webpack

Webpack 4 学习04(配置webpack-dev-server)

webpack学习—webpack+react+es6

webpack学习笔记