由於前幾篇文章是用vue-cli直接分析的,今天我們學習直接調試vue源碼。
安裝vue(mac機)
1.在GitHub上克隆官方的vue-地址
2.安裝依賴npm install
修改vue項目
1.在package.json
script
dev
增加--sourcemap
指令
"dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev --sourcemap",
2.運行打包命令npm run dev
,可能大多數之前用過vue-cli的人都會以爲這裏已經運行了一個本地服務,但其實這個項目中沒有內置的服務。
這時候會在dist目錄下生成vue.js和vue.js.map文件,這兩個文件正是我們調試時所需要的。
3.編輯器打開examples/commits/index.html
,將<script src="../../dist/vue.mini.js"></script>
修改成<script src="../../dist/vue.js"></script>
創建本地服務
由於--sourcemap
指令是要依賴服務才能加載到瀏覽器的如果我們直接打開,它是不生效的。
不生效的例圖:
既然如此我們就先搭建一個本地服務吧;
1.偷懶方式直接利用vscode的插件,創建本地服務
在vscode
編輯器上安裝live server
這個插件,安裝成功後在右下角有一個Go Live
的提醒,點擊它就能打開當前文件並放到它創建的服務上了。
利用live server在瀏覽器上運行打開examples/commits/index.html
文件,我們可以看到sourcemap已經生效了。
2.安裝比較常用的webpack-dev-server
npm install webpack-cli webpack-dev-server
在script命令中增加start
增加webpack-dev-server
指令
"start": "webpack-dev-server",
然後運行npm run start
雖然報錯的,但不影響本地服務的啓動
同樣可以啓用sourcemap
記住你每次修改源碼是用npm run dev
這命令打包的,當然它有熱更新功能,npm run start
只是啓動了本地服務,所以你可能需要啓動兩個進程來分別控制
手動debugger
我們除了可以在瀏覽器上進行debugger之外,還能在代碼中直接寫debugger
比如我們想試試src/core/index.js
重新打包後,用瀏覽器再次運行,就會馬上進入debugger模式,直接定位到剛剛我們寫有debugger
的地方
結語
這樣你就可以一步步看完所有vue源碼了,呵呵,開玩笑的,你看不完~~~