美文网首页
Webpack Loader

Webpack Loader

作者: 若比邻 | 来源:发表于2017-10-30 10:28 被阅读0次

Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。

Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为参数,返回转换的结果。这样,我们就可以通过require来加载任何类型的模块或文件,比如 CoffeeScript、 JSX、 LESS 或图片。

先来看看 loader 有哪些特性?

Loader 可以通过管道方式链式调用,每个 loader 可以把资源转换成任意格式并传递给下一个 loader ,但是最后一个 loader 必须返回 JavaScript。

Loader 可以同步或异步执行。

Loader 运行在 node.js 环境中,所以可以做任何可能的事情。

Loader 可以接受参数,以此来传递配置项给 loader。

Loader 可以通过文件扩展名(或正则表达式)绑定给不同类型的文件。

Loader 可以通过npm发布和安装。

除了通过package.json的main指定,通常的模块也可以导出一个 loader 来使用。

Loader 可以访问配置。

插件可以让 loader 拥有更多特性。

Loader 可以分发出附加的任意文件。

Loader 本身也是运行在 node.js 环境中的 JavaScript 模块,它通常会返回一个函数。大多数情况下,我们通过 npm 来管理 loader,但是你也可以在项目中自己写 loader 模块。

按照惯例,而非必须,loader 一般以xxx-loader的方式命名,xxx代表了这个 loader 要做的转换功能,比如json-loader。

在引用 loader 的时候可以使用全名json-loader,或者使用短名json。这个命名规则和搜索优先级顺序在 webpack 的resolveLoader.moduleTemplatesapi 中定义。

Default: ["*-webpack-loader","*-web-loader","*-loader","*"]

Loader 可以在require()引用模块的时候添加,也可以在 webpack 全局配置中进行绑定,还可以通过命令行的方式使用。

接上一节的例子,我们要在页面中引入一个 CSS 文件 style.css,首页将 style.css 也看成是一个模块,然后用css-loader来读取它,再用style-loader把它插入到页面中。

/* style.css */body{background: yellow; }

修改 entry.js:

require("!style-loader!css-loader!./style.css")// 载入 style.cssdocument.write('It works.')document.write(require('./module.js'))

安装 loader:

npminstallcss-loaderstyle-loader

重新编译打包,刷新页面,就可以看到黄色的页面背景了。

如果每次requireCSS 文件的时候都要写 loader 前缀,是一件很繁琐的事情。我们可以根据模块类型(扩展名)来自动绑定需要的 loader。

将 entry.js 中的require("!style!css!./style.css")修改为require("./style.css"),然后执行:

$ webpack entry.js bundle.js --module-bind'css=style-loader!css-loader'

# 有些环境下可能需要使用双引号

$ webpack entry.js bundle.js --module-bind"css=style-loader!css-loader"

显然,这两种使用 loader 的方式,效果是一样的。

相关文章

  • 7 webpack + vue-loader

    vue-loader vue-loader基于webpack webpack+vue-loader

  • webpack4打包css,html

    webpack安装 webpack打包css 安装style-loader css-loader webpack打...

  • webpack

    webpack 唯一功能:打包loader,没有loader,webpack只能打包js,有了loader,可以打...

  • Webpack Loader源码导读之css-loader

    原文地址:Webpack Loader源码导读之css-loader 在上一篇Webpack Loader源码导读...

  • webpack(壹)

    常用webpack 插件 html-webpack-plugin css-loader style-loader...

  • loader初识

    loader 介绍 loader让webpack能够去处理那些非JavaScript文件(webpack自身只理解...

  • 怎么编写一个 webpack loader

    编写 loader 前需要知道 webpack loader 的执行循序?从右到左执行。 为什么 webpack ...

  • 写一个webpack-loader

    都知道webpack的loader,可是你写过一个loader吗?最近有空写了一个webpack-loader,如...

  • 8-webpack-less-loader使用

    这里webpack中loader处理规则,问题,解决方法 一.webpack中loader处理规则 判断当前需要打...

  • webpack 之 css module

    webpack 之 css module webpack配置css-loader?modulesmodules ...

网友评论

      本文标题:Webpack Loader

      本文链接:https://www.haomeiwen.com/subject/elkppxtx.html