首先配置webpack的基本配置,包括entry( 入口)、output(出口):css
(建立webpack.config.js文件放置全部的webpack的配置)vue
接下來是配置命令:node
module.exports={webpack
entry:"",es6
output:{web
path:"",(寫絕對路徑,打包後的輸出文件,通常經過node的path以及path.resolve的拼接函數,進行動態獲取)算法
filename:""npm
}json
}babel
而後提到的是如何將npm run XXX命令與webpack命令造成映射?
在package.json文件中的script下對應添加
"scripts":{
「build」:"webpack",
}
相似的代碼就好了
下面是webpack如何對css文件進行處理?
(webpack的擴展處理都是經過安裝對應的loader進行的)
處理css須要的loader爲:css-loader、style-loader
利用npm進行下載上述loader
安裝完,便進行配置,處理css須要的webpack配置爲:
在module下添加相應的rules
module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ]
(從右向左依次編譯,因此順序可不能亂放) } ] }
全部你所須要的loader以及配置均可以在這裏找到:https://www.webpackjs.com/loaders/css-loader/#%E7%94%A8%E6%B3%95
接下來是對less文件的處理
處理less須要的loader爲:less-loader、less
配置:略
接下來是對圖片文件的處理
處理圖片文件須要的loader爲:url-loader、file-loader
當文件的大小小於默認配置option中的8196:=8kb時,圖片文件會被url-loader編譯成爲base64存儲,大於默認大小limit,便經過file-loader處理,不會編譯成爲base64存儲,而是直接經過hash算法更改文件名,存儲到出口文件。
配置:略
接下來是對es6文件的處理
處理less須要的loader爲:babel-loader,babel-core、babel-preset-es2015
配置:
{ test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['es2015'] } } }
接下來是對vue文件的處理
須要在webpack中集成vue.js
利用npm安裝npm i vue --save
vue在構建發佈版本的時候,發佈兩個版本
1.runtime-only 代碼中不能夠有任何Template
2.runtime-compiler 代碼中能夠有Template
能夠在webpack配置文件中,配置成爲版本runtime-compiler
resolve:{ alias:{ "vue$":"vue/dist/vue.esm.js" } }
webpack.config.js中處理各類上述文件全部的配置爲:
const path = require('path'); module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', }, module: { rules: [ { test: /\.css$/, use: [ { loader: "style-loader" }, { loader: "css-loader" } ] }, { test: /\.less$/, use: [{ loader: "style-loader" // creates style nodes from JS strings }, { loader: "css-loader" // translates CSS into CommonJS }, { loader: "less-loader" // compiles Less to CSS }] }, { test: /\.(png|jpg|gif)$/, use: [ { loader: 'url-loader', options: { limit: 8192 } } ] }, { test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['es2015'] } } } ] }, resolve:{ alias:{ "vue$":"vue/dist/vue.esm.js" } } }
package.json中的全部的依賴:
{ "name": "fhg", "version": "1.0.0", "description": "need not description", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack" }, "author": "", "devDependencies": { "babel-core": "^6.26.3", "babel-loader": "^7.1.5", "babel-preset-es2015": "^6.24.1", "css-loader": "^1.0.1", "less": "^3.9.0", "less-loader": "^5.0.0", "style-loader": "^0.23.1", "url-loader": "^2.1.0", "vue-loader": "^13.0.0", "vue-template-compiler": "^2.6.10", "webpack": "^3.6.0" }, "dependencies": { "vue": "^2.6.10" } }
你們能夠進羣交流學習,老師講的十分仔細!
vue學習連接