# 三种使用方式
配置(最常用),在 webpack.config.js 文件中指定 loader。
// webpack.config.js module.exports = { module: { rules: [ { test: /\.js$/, use: 'babel-loader' }, { test: /\.css$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'postcss-loader' }, ] } ] } };
每一条 rule 会包含两个属性:test 和 use。test用来匹配对应的文件,use 指定 loader 转换匹配的文件。
内联,在每个 import 语句中显式指定 loader。
import style from 'style-loader!css-loader?modules!./styles.css';
可以在 import 语句指定 loader。使用 ! 将资源中的 loader 分开。分开的每个部分都相对于当前目录解析。CLI,在shell命令中指定它们。
webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader'
# loader 特性
- 支持链式传递,一组链式的 loader 将按照相反的顺序执行。
- 可以是同步的,也可以是异步的。
- 接收查询参数,用于对 loader 传递配置;也能够使用 options 对象进行配置。
# 常用 loader
vue-loader
: 加载和转译 Vue 组件babel-loader
: 加载 ES2015+ 代码,然后使用 Babel 转译为 ES5ts-loader
: 加载ts代码,转译为 jsscript-loader
在全局上下文中执行一次 JavaScript 文件json-loader
: 加载 JSON 文件file-loader
: 将文件发送到输出文件夹,并返回(相对)URLraw-loader
: 加载文件原始内容(utf-8)val-loader
: 将代码作为模块执行,并将 exports 转为 JS 代码eslint-loader
: 使用 ESLint 清理代码style-loader
: 将模块的导出作为样式添加到 DOM 中css-loader
解析 CSS 文件后,使用 import 加载,并且返回 CSS 代码less-loader
: 加载和转译 LESS 文件sass-loader
: 加载和转译 SASS/SCSS 文件html-loader
导出 HTML 为字符串,需要引用静态资源markdown-loader
: 将 Markdown 转译为 HTML