1. loader用于对模块的源代码进行转换,loader可以使你在import或“加载”模块时预处理文件,比如loader可以将不同的语言(如TypeScript)转换成JavaScript,或将内联图像转换为data URL, loader甚至允许你直接在Javascript模块中import CSS文件, 分析转换scsscss,或者把下一代的JS文件(ES6,ES7)转换为现代浏览器兼容的JS文件,对React的开发而言,合适的loaders可以把React的中用到的JSX文件转换为JS文件。

使用Loader,可以做一下工作:

  • TypeScript —- >>> JavaScript
  • 内联图像 —- >>> dataURL
  • scss —- >>> css
  • ES6,ES7 —- >>> 现代浏览器兼容的JS文件
  • JSX文件 —- >>> JS文件

使用

**
1.先导入相应的loader,
npm install —save-dev css-loader
npm install —save-dev ts-loader

2.需要在webpack.config.js文件中进行配置。
test属性,用于标识出应该被对应的loader进行转换的某个或某些文件
use属性,表示进行转换时,应该使用哪个loader。

  1. module.exports = {
  2. module: {
  3. rules: [
  4. { test: /\.css$/, use: 'css-loader' },
  5. { test: /\.ts$/, use: 'ts-loader' }
  6. ]
  7. }
  8. };
  9. //在配置中进行选项的设置。
  10. module: {
  11. rules: [
  12. {
  13. test: /\.css$/,
  14. use: [
  15. { loader: 'style-loader' },
  16. {
  17. loader: 'css-loader',
  18. options: {
  19. modules: true
  20. }
  21. }
  22. ]
  23. }
  24. ]
  25. }

常见的loader

文件

模板(Templating)

  • html-loader 导出 HTML 为字符串,需要引用静态资源
  • pug-loader 加载 Pug 模板并返回一个函数
  • jade-loader 加载 Jade 模板并返回一个函数
  • markdown-loader 将 Markdown 转译为 HTML
  • react-markdown-loader 使用 markdown-parse parser(解析器) 将 Markdown 编译为 React 组件
  • posthtml-loader 使用 PostHTML 加载并转换 HTML 文件
  • handlebars-loader 将 Handlebars 转移为 HTML
  • markup-inline-loader 将内联的 SVG/MathML 文件转换为 HTML。在应用于图标字体,或将 CSS 动画应用于 SVG 时非常有用。

样式

  • style-loader 将模块的导出作为样式添加到 DOM 中
  • css-loader 解析 CSS 文件后,使用 import 加载,并且返回 CSS 代码
  • less-loader 加载和转译 LESS 文件
  • sass-loader 加载和转译 SASS/SCSS 文件
  • postcss-loader 使用 PostCSS 加载和转译 CSS/SSS 文件
  • stylus-loader 加载和转译 Stylus 文件

清理和测试(Linting && Testing)

框架(Frameworks)

  • vue-loader 加载和转译 Vue 组件
  • polymer-loader 使用选择预处理器(preprocessor)处理,并且 require() 类似一等模块(first-class)的 Web 组件
  • angular2-template-loader 加载和转译 Angular 组件