Entry用來指定打包入口css
上方依賴圖的入口是entry,對於非代碼,字體依賴也會不斷加入到依賴圖中。全部的模塊之間會存在一些依賴關係, 所以webpack裏面會根據entry找到它的依賴,入口文件的依賴也可能依賴其餘的一些文件,在這棵依賴樹上,只要遇到依賴,webpack就會將其加入到依賴圖中,最終遍歷完後纔會生成一些打包資源。html
Entry的用法webpack
單入口:entry是一個字符串web
module.exports = {
entry:'./path/src/index.js'
}
複製代碼
多入口: entry是一個對象json
module.exports = {
entry:{
app:'./src/app.js',
myapp:'./src/myapp.js'
}
}
複製代碼
Output用來告訴webpack如何將編譯後的文件輸出到磁盤數組
module.exports = {
entry: './src/index.js',
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js'
}
}
複製代碼
module.exports = {
entry: {
app:'./src/app.js',
search:'./src/search.js'
},
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].js'
}
}
複製代碼
[name].js經過佔位符確保文件名稱的惟一 , 單個入口的文件名是能夠寫死的,像這種多個入口就須要經過佔位符對他進行一個區分。bash
webpack原生只支持js和json兩種文件類型,經過Loaders去支持其餘如css類型而且把它們轉化成有效的模塊,而且能夠添加到依賴圖中。babel
loaders自己是一個函數,經過接收源代碼而後通過loaders這個函數轉換以後。會輸出一個結果給下一步去使用。app
babel-loader
:轉換ES6,ES&等JS新特性語法 css-loader
:支持.css文件的加載和解析。 less-loader
:將less文件轉換成css
ts-loader
:將TS轉換成JS
file-loader
:進行圖片,字體等的打包less
config.module
.rule('css')
.test(/\.css$/)
.use('css')
.loader('css-loader!')
module.export = config.toConfig();
複製代碼
這裏用到的是webpack-chain的配置方案,.test指定匹配規則,.use指定文件類型,.loader指定使用的loader名稱。
Plugins一般是用於打包輸出的js文件的優化,資源的管理,和環境變量的注入,做用於整個構建過程。
module.exports = {
plugins:[
new HtmlWebpackPlugin({
template:'./src/index.html'
})
]
複製代碼
使用時只須要把你定義好的插件,放入plugins數組裏就能夠了。
Mode是用來指定當前的構建環境是:production,development仍是none,默認狀況下是production。
development
:設置process.env.Node_ENV的值爲development。
production
: 設置process.env.Node_ENV的值爲production。
none
:不開啓任何優化選項。
筆者最近在學webpack,想跟你們一塊兒交流分享。webpack系列會持續更新,歡迎關注,若是能夠的話那就再點個贊吧~xixi