由于vue官網教程提示使用webpack來開發vue,所以就入坑了。官網代碼如下:
# 全局安裝 vue-cli
$ npm install -g vue-cli
# 創建一個基于 "webpack" 模板的新項目
$ vue init webpack my-project
# 安裝依賴,走你
$ cd my-project
$ npm install
$ npm run dev
官網
在輸入命令 vue init webpack my-project
來創建項目時,跳出了很多選項,第一次都選yes,后來都沒用上,所以第二次都選了no,以后要用的話再裝吧,省得很臃腫。
剛開始正式用的時候在本地加載都有點久,打開network一看足足有1.8M。
1.8M!
不明原因,于是請教老司機,把devtool關了才變幾百k,緩解了一點這情況
代碼如下:
// build/webpack.dev.conf.js下
// devtool: '#eval-source-map', 把這個選項改成false
devtool: false,
690KB
現在是690KB
后來又參考了這兩篇文章 webpack常用配置總結,webpack 看我就夠了(二),把devtool又改了:
devtool:'#eval'
711KB
看來還是devtool關了最快,但是關了之后調試就很麻煩了,有錯但不知道是哪里有錯
剛開始使用vue+webpack時不是引用外部的前端庫如bootrasp,jquery,而我的做法是這樣的:
使用cdn引用
這樣做的話也能達到效果,而且能減少編譯時間,感覺還不錯。但是畢竟是引用別人服務器的,那么引用本地的jquery呢?
后來開始參考別人的代碼,找到答案:
傳送門
代碼如下:
// 修改的是build/webpack.config.js
// 在開頭引入webpack,后面的plugins那里需要
var webpack = require('webpack')
// resolve
module.exports = {
// 其他代碼...
resolve: {
// require時省略的擴展名,如:require('module') 不需要module.js
extensions: ['', '.js', '.vue'],
fallback: [path.join(__dirname, '../node_modules')],
// 別名,可以直接使用別名來代表設定的路徑以及其他
alias: {
'src': path.resolve(__dirname, '../src'),
'assets': path.resolve(__dirname, '../src/assets'),
'components': path.resolve(__dirname, '../src/components'),
// webpack 使用 jQuery,如果是自行下載的
// 'jquery': path.resolve(__dirname, '../src/assets/libs/jquery/jquery.min'),
// 如果使用NPM安裝的jQuery
'jquery': 'jquery'
}
},
// 增加一個plugins
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
],
// 其他代碼...
}
接下來比如我要引入Bootstrap,我們在vue的入口js文件src/main.js開頭加入
// 使用Bootstrap
import '../static/bootsrap/bootstrap.min.css'
import '../static/bootstrap/bootstrap.min.js'
這樣bootrasp就被正確構建并且引用。
再比如使用chart,只需要在需要的地方import進來:
// 使用chart.js
import chart from 'chart.js'
再比如我們要使用highcharts,可以直接在export default{}中引入并使用:
var Highcharts = require('highcharts')
this.chart = new Highcharts.Chart(optsData)
在簡書的一篇文章中get到很多減少打包文件的大小的技能 -> 徹底解決 webpack 打包文件體積過大
效果如下:
配置前
配置后
疑惑:按照文章里面的提示,把
HotModuleReplacementPlugin, NoErrorsPlugin
這兩個插件去除,反而運行不了。不去除才是可以的。不過還是有很大的收獲的,主要是大小小了不少。