Webpack Loader
本文最后更新于:2024年3月18日 凌晨
Webpack Loader
- Webpack使用多个Loader时,从右向左加载。
css-loader与style-loader
css-loader会对@import和url()进行处理,就像 js 解析import/require()一样。stype-loader将模块导出的内容作为样式并添加到 DOM 中。- 二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。
安装
1 | |
配置
webpack.config.js
1 | |
modules:是否启用css moduleslocalIdentName:指定css的类名格式。
导入
index.js
1 | |
使用CSS Modules定义类名
- 相同的类名也不会造成不同组件之间的污染。
style.css
1 | |
index.js
1 | |
sass-loader
- 加载 Sass/SCSS 文件并将他们编译为 CSS
安装
1 | |
配置
webpack.config.js
1 | |
- 将 Sass 编译成 CSS
- 将 CSS 转化成 CommonJS 模块。
- 将 JS 字符串生成为 style 节点。
导入
index.js
1 | |
解析 import 的规则
- Webpack 提供一种 解析文件的高级机制
sass-loader使用 Sass 提供的 custom importer 特性,将所有 query 传递给 Webpack 解析引擎,只要在包名前加上~,告诉 Webpack 这不是一个相对路径,这样就可以从node_modules中 import 自己的 Sass 模块了:
1 | |
- 注意:只在前面加上
~,因为~/将会解析到用户的主目录(home directory) - 因为 CSS 和 Sass 文件没有用于导入相关文件的特殊语法,所以 Webpack 需要区分
bootstrap和~bootstrap @import "style.scss"和@import "./style.scss";两种写法是相同的。
less-loader
- webpack 将 Less 编译为 CSS 的 loader
安装
1 | |
配置
webpack.config.js
1 | |
- 将 Less 编译成 CSS
- 将 CSS 转化成 CommonJS 模块。
- 将 JS 字符串生成为 style 节点。
导入
index.js
1 | |
postcss-loader
- 对CSS增强,可以安装丰富的插件。
安装
1 | |
插件安装
1 | |
autoprefixer:动态添加浏览器前缀,提高兼容性。postcss-preset-env:转换现代CSS以兼容大多数浏览器。
配置
webpack.config.js
1 | |
postcss.config.js
1 | |
导入
1 | |
babel-loader
安装
1 | |
配置
webpack.config.js
1 | |
- 或者使用
~/.babelrc
1 | |
手动执行Babel
全局安装
1 | |
转码结果写入一个文件
--out-file或-o参数指定输出目录。
1 | |
整个目录转码
--out-dir或-d参数指定输出目录。
1 | |
file-loader
- 将文件保存至输出文件夹中并返回(相对)URL
安装
1 | |
配置
1 | |
name:导出的文件名。outputPath:导出的路径。
导入
1 | |
url-loader
- 将图片转换成base64的URIs
- 如果文件大小小于一个设置的值,则会转换为base64
- 如果文件大小大于一个设置的值,则会使用
file-loader
安装
1 | |
配置
webpack.config.js
1 | |
limit:当加载的图片大小指定大小时才进行转换,单位为Bname:导出的文件名。outputPath:导出的路径。
导入
index.js
1 | |
style.css
1 | |
html-withimg-loader
html中直接使用img标签src加载图片的话,因为没有被依赖,图片将不会被打包,这个loader解决这个问题,图片会被打包,而且路径也处理妥当,额外提供html的include子页面功能。
安装
1 | |
配置
1 | |
esModule:默认为true,图片打包后的默认路径带default对象。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!