loaders 用於轉換應用程序的資源文件,他們是運行在nodejs下的函數 使用參數來獲取一個資源的來源而且返回一個新的來源(資源的位置),例如:你可使用loader來告訴webpack去加載一個coffeescript或者jsxjavascript
若是你對loader的例子感興趣能夠去看下現有的loader列表css
loaders的解析相似模塊兒,一個loader模塊會導出一個方法而且可被nodejs寫爲可兼容的javascript,一般狀況下經過npm來管理loaders,但你也能夠把loader放在本身的應用裏html
按照慣例,雖然不是必須的,但loaders一般被命名爲XXX-loader, XXX是上下文名稱,好比json-loader.
你可能引用loaders經過完整的(真實的)名字例如(json-loader)或者經過他的速記名(.json)
loader的名稱約定和優先級搜索是經過webpack內置api esolveLoader.moduleTemplates所定義
loader的名稱約定頗有用處,特別是當你經過require()聲明來引用的時候,下面會講到用法java
若是這個loader能夠在npm上安裝,你能夠安裝這個loader經過node
$ npm install xxx-loader --save
或者webpack
$ npm install xxx-loader --save-dev
有不少種方法在你的app中使用loadersgit
提示:若是能夠的話儘可能不要使用require ,若是你想讓你的腳本可運行在服務端和客戶端(nodejs和瀏覽器)使用約定配置文件來配置github
經過require聲明(define,require.ensure,等等)來加載指定的loaders ,使用!來分割資源loaders,每一部分會被解析到當前的文件web
能夠在配置文件裏經過加!前綴這種規則重寫任意的loadernpm
require("./loader!./dir/file.txt"); require("jade!./template.jade"); require("!style!css!less!bootstrap/less/bootstrap.less");
你能夠經過正則在配置文件裏綁定loaders
{ module: { loaders: [ { test: /\.jade$/, loader: "jade" }, // => "jade" loader 用於.jade文件 { test: /\.css$/, loader: "style!css" }, // => "style" 和 "css" loader 用於 ".css" 文件 //另外一種語法 { test: /\.css$/, loaders: ["style", "css"] }, ] } }
CLI
能夠經過命令行來綁定加載器
$ webpack --module-bind jade --module-bind 'css=style!css' // 使用loader'jade'來加載'.jade'的文件 ,使用loaders 'style'和'css'加載'.css'文件
loader可使用查詢參數經過字符串(像web上的同樣)查詢字符串被插在?後面例如url-loader?mimetype=image/png.
提示:查詢參數的格式由loader決定,查看loader格式文檔大多數的loaders接受以下格式的參數形式(?key=value&key2=value2)和JSON 對象格式 (?{"key":"value","key2":"value2"}).
require("url-loader?mimetype=image/png!./file.png");
{ test: /\.png$/, loader: "url-loader?mimetype=image/png" }
或者
{ test: /\.png$/, loader: "url-loader", query: { mimetype: "image/png" } }
CLI方式
webpack --module-bind "png=url-loader?mimetype=image/png"
以上文段皆翻譯自webpack官網如有錯誤請指正,接下來講下我的對loader的理解,我以爲loader是一個很於意思的功能,webpack其實運行在node下的一個編譯站,她能夠將各類個樣的文件打包起來,包括圖片呀,css呀,視頻呀,但不管怎麼打包最後導出的都是javascrit,可是咱們最終被客戶端拉出的頁面須要css的渲染 須要圖片的路徑,而loader她能夠把各類各樣的資源文件進行轉變編譯,最後用正確的格式加載到瀏覽器中,好比css被轉換爲style插入到頁面,圖片被轉換爲base64格式