最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue.js學習之vue-cli定制腳手架詳解

 更新時間:2017年07月02日 09:40:46   作者:Zhang Xiao  
這篇文章主要給大家介紹了vue.js學習之vue-cli定制腳手架的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。

前言

年初的時候公司的老后臺系統(tǒng)實在難以維護和繼續(xù)在其上開發(fā)了,因為這個系統(tǒng)被很多人寫過頁面,有前端有后端,編寫前端代碼時都非常隨意,加之沒有模塊化,復(fù)用性和可維護性都極低,便下定決定,重新搞一套。

經(jīng)過一段時間的調(diào)研選擇了vue全家桶+elementUI來開發(fā)后臺系統(tǒng),讓交互體驗更好,讓開發(fā)體驗更好,讓生產(chǎn)效率提高。

從零搭建其實考慮的事情還挺多的,比如:

  • 如何管理代碼倉庫
  • 開發(fā)環(huán)境,測試環(huán)境搭建
  • 如何接入公司的打包上線流程
  • 如何目錄劃分
  • 如何劃分模塊
  • 登錄和權(quán)限如何做

這篇文章來記錄下和腳手架相關(guān)的改造,首先其實就是上了vue-cli來做,可是呢?由于預(yù)計項目會有很多頁面,這些頁面其實是分模塊的,不同模塊的頁面之前其實關(guān)系不大。所以我覺得一個用戶其實大部分時候只會用到其中一個模塊的頁面,如果把所有頁面做成一個單頁應(yīng)用很多資源加載就不是很必要了,所以第一個改造就是:做成多入口打包,也就是做成多個單頁應(yīng)用,每個模塊一個入口。

/build/utils

exports.getEntries = function (globPath) { 
 var entries = {}
 glob.sync(globPath).forEach(function (entry) {
 var basename = path.basename(entry, path.extname(entry))
 entries[basename] = entry
 })
 return entries
}

/build/webpack.base.conf

module.exports = { 
 entry: utils.getEntries('./src/modules/*/*.js'),

/build/webpack.dev.conf

/build/weback.prod.conf

var modules = utils.getEntries('./src/modules/*/*.html') 
Object.keys(modules).forEach(function (moduleName) { 
 var config = {
 filename: moduleName + '/index.html',
 template: modules[moduleName],
 inject: true,
 excludeChunks: Object.keys(modules).filter(function (name) {
  return name != moduleName
 })
 }
 module.exports.plugins.push(new HtmlWebpackPlugin(config))
})

這樣就完成了多頁面的入口配置,其核心就是兩點:1. 入口配置成數(shù)組。2. plugins里面添加多個HtmlWebpackPlugin分別對應(yīng)每一個頁面,完成js打包后路徑的自動注入功能。

這里還有個地方需要注意,就是抽取公用的js和css代碼出來,這里做了一下改造,就是echarts指定提取出來,而不是按引用次數(shù)那種自動提取, 這里還踩了個坑,詳細見注釋。

在webpack.prod.conf的plugins里面加入:

entry: { 
 vendor: ['vue', 'vue-router', 'vuex', 'element-ui'],
 echarts: ['vue-echarts']
 },

// 這個地方天坑啊~~~死人了。。。:(
 // vendor是echarts的父模塊,順序不能反:https://github.com/webpack/webpack/issues/1943
 // 包括聲明CommonsChunkPlugin的順序也是有關(guān)系的,不是隨意的,后聲明的是頂級模塊,先聲明的是依賴頂級模塊的模塊
 // HtmlWebpackPlugin注入模塊鏈接的時候的順序也是由此保證的
 new webpack.optimize.CommonsChunkPlugin({
  names: ['echarts', 'vendor'],
  minChunks: function (module, count) { // 抽取公用vendor.css
  // console.log(module.resource)
  return (
   module.resource &&
   /\.css$/.test(module.resource) &&
   module.resource.indexOf(
   path.join(__dirname, '../node_modules')
   ) === 0
  )
  } 
 }),

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解vuex的簡單使用

    詳解vuex的簡單使用

    這篇文章主要介紹了詳解vuex的簡單使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • element前端實現(xiàn)壓縮圖片的功能

    element前端實現(xiàn)壓縮圖片的功能

    本文主要介紹了element前端實現(xiàn)壓縮圖片的功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue.js中,prerender-spa-plugin和vue-meta-info插件的結(jié)合使用,提供了解決SEO問題的方案,prerender-spa-plugin通過預(yù)渲染技術(shù)生成靜態(tài)HTML,而vue-meta-info則能動態(tài)管理頁面元數(shù)據(jù),本文將探討如何使用這兩個工具優(yōu)化Vue.js項目的SEO表現(xiàn),包括安裝、配置及注意事項
    2024-10-10
  • Vue中的methods、computed計算屬性和watch監(jiān)聽屬性的使用和區(qū)別解析

    Vue中的methods、computed計算屬性和watch監(jiān)聽屬性的使用和區(qū)別解析

    這篇文章主要介紹了Vue中的methods、computed計算屬性和watch監(jiān)聽屬性的使用和區(qū)別,本文通過示例代碼給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Vue 組件間的樣式?jīng)_突污染

    Vue 組件間的樣式?jīng)_突污染

    本篇文章主要介紹了Vue 組件間的樣式?jīng)_突污染,當多個樣式出現(xiàn)時,就會導致樣式?jīng)_突,本文介紹了具體解決方法
    2017-08-08
  • 詳解如何使用Object.defineProperty實現(xiàn)簡易的vue功能

    詳解如何使用Object.defineProperty實現(xiàn)簡易的vue功能

    這篇文章主要為大家介紹了如何使用Object.defineProperty實現(xiàn)簡易的vue功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • vue實現(xiàn)PC端錄音功能的實例代碼

    vue實現(xiàn)PC端錄音功能的實例代碼

    這篇文章主要介紹了vue實現(xiàn)PC端錄音功能的實例代碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • vue項目如何通過url鏈接引入其他系統(tǒng)頁面

    vue項目如何通過url鏈接引入其他系統(tǒng)頁面

    這篇文章主要介紹了vue項目如何通過url鏈接引入其他系統(tǒng)頁面問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue實現(xiàn)自帶的過濾器實例

    Vue實現(xiàn)自帶的過濾器實例

    本篇文章主要介紹了Vue實現(xiàn)自帶的過濾器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • vue踩坑記之npm?install報錯問題解決總結(jié)

    vue踩坑記之npm?install報錯問題解決總結(jié)

    當你跑起一個項目的時候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于vue踩坑之npm?install報錯問題解決的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評論

永兴县| 自贡市| 高要市| 丰都县| 渭南市| 新巴尔虎右旗| 灵石县| 东丽区| 潼南县| 万州区| 小金县| 常宁市| 沙洋县| 石屏县| 桂平市| 祁东县| 尚志市| 革吉县| 柞水县| 宣恩县| 巨野县| 南昌县| 岗巴县| 福建省| 滦平县| 金山区| 柳河县| 色达县| 五台县| 龙陵县| 高邑县| 桐梓县| 容城县| 西乌| 梁平县| 陈巴尔虎旗| 壶关县| 内乡县| 鞍山市| 城固县| 苏州市|