webpack
自稱可以打包任何文件,這句話咋聽一下好像在吹牛逼,由於webpack
自己只能理解JavaScript
。可是因爲webpack
中有loader
的存在,能夠將全部類型的文件轉換爲webpack
可以處理的有效模塊,而後利用webpack
的打包能力對它們進行處理————前提是要有對應的loader存在
固然,上面這些特性暫時看不明白也不要緊,學會如何使用纔是重點。因此重點看如何使用Loader
javascript
下面是常見的webpack
配置的基本結構:css
const path = require('path') module.exports = { entry: './src/index.js', output:{ filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module:{ ... } }
其中entry
用來設置webpack
的入口文件,output
是用來設置打包後的文件輸出位置以及相應的文件名。這裏就不詳細介紹,下面咱們來看一下常見的loader
配置:前端
const path = require('path') module.exports = { entry: './src/index.js', output:{ filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module:{ rules:[ { test: /\.css$/, use: ['style-loader','css-loader'] }, { test: /\.sass$/, use: ['sass-loader','node-sass'] }, { test: /\.(png|jp?eg|gif)$/, use: ['file-loader'] }, { test: /\.json$/, use: ['json-loader'] }, { test: /\.txt$/, use: ['raw-loader'] } ] } }
rules
數組裏面的每一個對象都對應着一個匹配規則,從上到下分別匹配.css
文件,.sass
文件,圖片
文件,.json
文件以及.txt
文本文件
另外,在運行以前千萬記得要安裝對應的依賴,示例:java
npm install css-loader style-loader --save-dev
能夠在 import
語句或任何等效於 import
的方式中指定 loader
。使用 ! 將資源中的 loader
分開。分開的每一個部分都相對於當前目錄解析。?
後面能夠傳遞參數,例如 ?key=value&foo=bar
,或者一個 JSON 對象,例如 ?{"key":"value","foo":"bar"}
node
import Styles from 'style-loader!css-loader?modules!./styles.css';
示例:webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader'
webpack
以上三種配置方式,第一種應該用的比較多,畢竟配置也比較方便...web
在配置loader
的時候儘可能使用文件進行配置,而且能夠在官方文檔找到相應的loader
,具體的參數傳入能夠在npm官網上找到,能夠根據具體的需求來設置npm
掃描下方的二維碼或搜索「tony老師的前端補習班」關注個人微信公衆號,那麼就能夠第一時間收到個人最新文章。json