webpack

1、webpack配置文件:webpack.config.js
webpack_第1张图片

webpack_第2张图片webpack_第3张图片

webpack_第4张图片
webpack_第5张图片
webpack_第6张图片
template:模板文件
filename:输出文件

自动生成的html文件有引入js:
htmlwebpackplugin对象:从html文件出发得dist相对html文件的路径,再拼接js相对dist的路径,最终得js相对html的路径
在这里插入图片描述
而原始html文件中我是没有引入js的

5、css-loader:
webpack_第7张图片
和入口文件产生关联,引入到入口文件(注意bootstrap如何引入,先用npm i 下载软件包代码(bootstrap代码))
webpack_第8张图片
请添加图片描述
bootstrap代码下载到项目中了
webpack_第9张图片
6、提取css代码(单独打包为一个css文件)
webpack_第10张图片
不能和style-loder一起使用
webpack_第11张图片
webpack_第12张图片
webpack_第13张图片
webpack_第14张图片

webpack_第15张图片
webpack_第16张图片
commonjs:内置模块,require中直接写名字,自定义模块写文件路径。
es:模块导出:import obj from ’模块名或路径‘(若后面用不到obj,可写为import ’模块名或路径‘)

提取成功:webpack_第17张图片
在这里插入图片描述
7、打包时压缩css代码
webpack_第18张图片
webpack_第19张图片
webpack_第20张图片
主要是optimization,其他和前面配置相同
它会同时使原本压缩的js代码不压缩,故加上...恢复js代码压缩处理

如果没有取消下一行注释:css被压缩,js没有被压缩
在这里插入图片描述
webpack_第21张图片
webpack_第22张图片

8、less-loader:
webpack_第23张图片
7、
资源模块类型:
webpack_第24张图片
文件大于8kb,asset采用第一种,小于则用第二种。
webpack_第25张图片
webpack_第26张图片
webpack_第27张图片
[hash][ext][query]是占位符

8、用户登入案例

此处添加了请求拦截器等的axios函数还想让外部使用,导出函数webpack_第28张图片
在这里插入图片描述
9、搭建开发环境
生产模式:npm run build ,改动代码,要重新打包才能运行查看网页,开发环境:启动web服务,自动检测代码变化,热更新到网页,npm run dev
webpack_第29张图片
在这里插入图片描述
webpack_第30张图片
webpack_第31张图片
webpack_第32张图片
webpack_第33张图片
优化:在这里插入图片描述
10、打包模式:
开发模式:调错,实时加载,模块热更新
生产模式:极致压缩代码,打包上线

11、注入环境变量
webpack_第34张图片
webpack_第35张图片
不能直接把process.env.node_env放在那,虽然他是一个字符串,插件内部源码如果发现value位置是一个字符串,会把字符串中的英文当作变量替换到源代码位置,但我们想要的是一个字符串去替代前面的键名匹配的变量。

webpack_第36张图片
设置完后,可在js中书写环境变量,和key名相同的变量将被替换为右边的字符串

webpack_第37张图片
webpack_第38张图片
webpack_第39张图片
12、解析别名:把之前import引入路径使用的相对路径改为绝对路径
webpack_第40张图片
此处_dirname:为当前文件(webpack配置文件)所在文件夹(项目文件夹)

13、webpack优化:使用cdn技术
cdn:内容分发网络,一组分布在各个地区的服务器。
生产模式下,页面运行在浏览器上,第三方库用cdn地址进行请求,就近返回第三方库源码(打包时禁止打包第三方库,用cdn地址取代)webpack_第41张图片
14、多页面打包
webpack_第42张图片
public中的index.html是web服务程序默认作为首页使用的,不用打包,启动开发服务器,就会打开此页面
webpack_第43张图片
15、提取公共代码
webpack_第44张图片

你可能感兴趣的:(webpack,前端,node.js)