vue多項目多模塊運行/打包
vue多項目多模塊運行/打包 vue-cli4 為例,實現多項目的分模塊打包。多項目之間共享組件和依賴,運行、打包互不干擾。 一、安裝 npm install -g @vue/cli # OR yarn global add @vue/cli 二、創建項目: vue create my-project # OR vue ui 三、目錄改造 所謂分模塊打包,一個模塊就是一個獨立項目,各個模塊
Nickname patelo
Contributes3
Followers0
vue多項目多模塊運行/打包 vue-cli4 為例,實現多項目的分模塊打包。多項目之間共享組件和依賴,運行、打包互不干擾。 一、安裝 npm install -g @vue/cli # OR yarn global add @vue/cli 二、創建項目: vue create my-project # OR vue ui 三、目錄改造 所謂分模塊打包,一個模塊就是一個獨立項目,各個模塊
Nickname patelo
依賴版本 "webpack": "^4.44.2", "webpack-cli": "^3.3.12" 一個簡單的文件通過webpack打包 // 導出 console.log('index.js') module.exports = '導出內容' // 導入 let log = require('./log.js') console.log('index.js內容') console.log(
Nickname HeiYanjing
首先導入導出分為幾類 CommonJS導入CommonJS EsModule導入CommonJS EsModule導入EsModule 根據實現規則,簡單代碼樣例 // index.js // import log,{age} from "./log.js" // // let log = require('./log.js') // console.log('index.js內容')
Nickname HeiYanjing
log.js文件 module.exports ="lazy load logger" index.js文件 let oBtn = document.getElementById('btn') oBtn.addEventListener('click', function () { import( /*webpackChunkName: "log"*/ './log.js').then(
Nickname HeiYanjing
tapable工作流程 實例化hook註冊事件監聽 通過hook觸發事件監聽 執行懶編譯生成的可執行代碼 Hook本職是tapable實例對象,分同步和異步,異步分並行和串行兩種模式 Hook執行特點 Hook:普通鈎子,監聽器之間互相獨立不干擾 BailHook:熔斷鈎子,某個監聽返回非undefined時後續不執行 WaterfallHoook: 瀑布鈎子,上一個監
Nickname HeiYanjing
調試過程瞭解SyncHook案例運行基本原理 let hook = new SyncHook(['name', 'age'])操作構建了一個SyncHook實例,掛載一些屬性核心屬性是_x和taps屬性,最後調用call方法 // SyncHook.js // 非tap模式全部拋出異常 tapAsync、 tapPromise const TAP_ASYNC = () = { thr
Nickname HeiYanjing
node_modules下.bin目錄下有一個webpack.cmd腳本文件,組裝定位了要執行的webpack.js文件 "%~dp0\node.exe" "%~dp0\..\webpack\bin\webpack.js" %* 將啓動文件指向了webpack目錄下的bin\webpack.js。 在webpack.js文件中,有一個runCommond方法和isInstalled判斷包是否安裝
Nickname HeiYanjing
調試webpack過程瞭解執行流程 開始-合併配置------------實例化compile-------設置node文件讀寫能力-----通過循環掛載plugins-----處理webpack內部默認的插件(入口文件) 開始-compiler.beforeRun-compiler.run--------compiler.beforeCompile-compiler.compile----
Nickname HeiYanjing
項目中會有一些資源文件,比如圖片資源,字體資源文件等。這些文件在打包的時候需要移動到dist目錄 webpack4中,打包這些資源文件,需要用到url-loader和file-loader, file-loader把文件輸出到一個文件夾中,在代碼中通過相對 URL 去引用輸出的文件 (處理圖片和字體) url-loader與 file-loader 類似,區別是用户可以設置一個閾
Nickname HeiYanjing
概述 @vue/cli-service@4.x下,配置了多頁面,構建後因為chunks沒有注入到html中,導致訪問頁面時頁面空白 原因 自定義了splitChunks,且單個包的大小達到某些條件後,會分割為多個包,如index~123.111.js,index~123.222.js,其中index~123是 chunkName 而html-webpack-plugin@3.x中,是判斷 i
Nickname lllllxt_in_sf