加載器是用於資源文件的轉換。 加載器就是以資源文件做爲入參並返回新的資源的函數(在Node.js中運行)。javascript
例如,您可使用加載器告訴webpack加載CSS文件或TypeScript文件,並將之轉換爲JavaScript。 首先,安裝相應的加載器:css
npm install --save-dev css-loader npm install --save-dev ts-loader
其次,在你的webpack.config.js
中配置匹配每一個.css
文件,並運用css-loader
生成js資源,同理對.ts
文件, 運用ts-loader`:java
webpack.config.jsnode
module.exports = { module: { rules: [ {test: /\.css$/, use: ['css-loader'](/loaders/css-loader)}, {test: /\.ts$/, use: ['ts-loader'](https://github.com/TypeStrong/ts-loader)} ] } };
注意,根據配置選項,應以如下規範使用相同的裝載器:webpack
{test: /.css$/, loader: 'css-loader'}
// or equivalently
{test: /.css$/, use: 'css-loader'}
// or equivalently
{test: /.css$/, use: {
loader: 'css-loader',
options: {}
}}git
有三種方式在你的應用中使用加載器:github
require
語句中顯式引入webpack.config.js
配置module.rules
容許您在webpack配置中指定多個加載器。web
這是一個簡便的方式來配置加載器,並有助於你總覽應用中每一個加載器。npm
module: { rules: [ { test: /\.css$/, use: [ { loader: 'style-loader'}, { loader: 'css-loader', options: { modules: true } } ] } ] }
require
配置一般指在 require
語句(或者 define
, require.ensure
, 等)中配置加載器。使用!
將資源中的加載器分開, 每一個部分相對於當前目錄解析。json
require('style-loader!css-loader?modules!./styles.css');
能夠經過用整個規則前綴!
覆蓋配置中的任何加載器 .
可使用查詢參數傳遞選項, 就好像如web(?key=value&foo=bar
)中同樣。也可使用JSON對象(?{"key":"value","foo":"bar"}
).
使用
module.rules
只要有可能,由於這將減小你的源代碼中的樣板,並容許你調試,而且定位加載器出現問題更快。
或者,你也能夠經過CLI安裝加載器 :
webpack --module-bind jade --module-bind 'css=style!css'
上述腳本爲.jade
文件配置了 jade-loader
加載器, 以及爲css文件配置了 style-loader
和 css-loader
加載器.
options
對象。main
via package.json
with the loader
field.裝載器經過預處理JavaScript環境,提供更多的功能。
functions (loaders).用戶如今有更多的靈活性來實現細粒度的邏輯,如壓縮,包裝,語言翻譯以及更多...。
加載器符合標準模塊協議。大多數狀況下,你會從模塊路徑 下得到你的加載器 (好比npm install
, node_modules
).
如何編寫加載器? 一個加載器模塊須要用Node.js兼容的JavaScript編寫一個能夠export的方法。 在一般狀況下,你用npm管理加載器,但你也能夠在你的應用程序中直接使用js文件編寫的加載器。
按照慣例, 加載器一般被命名爲 XXX-loader
, XXX
就是場下文的名字,好比說 json-loader
.
加載器名稱約定和優先搜索順序由由webpack配置API中的resolveLoader.moduleTemplates
定義。