loader
默认情况下webpack 自身只理解和处理 Js和json文件(开箱子带的能力),但是我们项目中还存在着许多其它模块类型的文件。
当js文件中 import 导入任何类型的模块(例如ts、css、、less、img文件),webpack便无法理解了。
好在webpack开放了允许三方扩展,来让webpack支持对其它模块的理解和处理,它就是loader。
loader 用于对模块的源代码进行转换。loader 可以使你在 import 或 "load(加载)" 模块时预处理文件。
如果导入了非js模块,在没有配置对应文件的loader下 运行 npx webpack 将报错:无法处理xx(如ts、css)模块类型,请安装对应loader。
配置项
在 webpack 的配置中,loader 有两个属性:
来个简单的例子
比如 让webpack 理解处理txt文件模块, 在项目中安装处理 txt模块的loader
在webpack.config.js中配置
我们来使用下 入口文件./src/index.js 代码如下
最后我们来执行npx webpack执行打包,
并将打包后的js文件引入页面 打开页面看看效果

一些常用的例子
使用loader来处理css
css-loader
会对 导入的css模块做处理,解析出css模块文件的内容。
安装完成后,在webpack文件里配置即可。
同样的 对一下代码执行打包命令后,执行打包后的js文件

此时,你的css文件内容也只读取出内容而以,但是和你的页面样式并没有什么关联,如需作用到页面,你需要自行处理,比如下边两种方案
或者
style-loader
如果你觉得 css-loader 处理的不够好,还需要额外自己手动作用到页面,那么这个插件就是解决这个问题的:把 CSS 插入到 DOM 中
入口文件 代码如下
这样就直接会将样式 以style的形式 插入到页面的head中。
如果你想以link的方式插入外部文件,则配置loader的插件参数即可
less-loader
如果你用less编写样式,那么很简单,只需安装less-loader处理即可
