基於webpack的配置調試#
使用Vue-cli命令行工具初始化基於wabpack模板的項目的命令語法:
npm install -g @vue/cli # 全局安裝vue-cli,版本vue3.x
vue init webpack [my-project] [app-name] # 使用vue-cli初始化一個完整的webpack項目。
cd my-project # 進入目錄 npm install # 安裝依賴 (package.json) npm start # 啟動開發環境版本
在config/index.js
文件中更改devtool
配置為source-map
:
module.exports = { devtool: 'source-map',//默認是:cheap-module-eval-source-map }
設置為 source-map
,則可以生成.map
文件,在chrome瀏覽器中調試的時候可以顯示源代碼,效果如下:
cheap-module-eval-source-map
選項效果:
webpack中devtool的其它選項各代表什么呢:#
eval
:文檔上解釋的很明白,每個模塊都封裝到 eval 包裹起來,並在后面添加 //# sourceURLsource-map
:這是最原始的 source-map 實現方式,其實現是打包代碼同時創建一個新的 sourcemap 文件, 並在打包文件的末尾添加 //# sourceURL 注釋行告訴 JS 引擎文件在哪兒hidden-source-map
:文檔上也說了,就是 soucremap 但沒注釋,沒注釋怎么找文件呢?貌似只能靠后綴,譬如 xxx/bundle.js 文件,某些引擎會嘗試去找 xxx/bundle.js.mapinline-source-map
:為每一個文件添加 sourcemap 的 DataUrl,注意這里的文件是打包前的每一個文件而不是最后打包出來的,同時這個 DataUrl 是包含一個文件完整 souremap 信息的 Base64 格式化后的字符串,而不是一個 url。eval-source-map
:這個就是把 eval 的 sourceURL 換成了完整 souremap 信息的 DataUrlcheap-source-map
:不包含列信息,不包含 loader 的 sourcemap,(譬如 babel 的 sourcemap)cheap-module-source-map
:不包含列信息,同時 loader 的 sourcemap 也被簡化為只包含對應行的。最終的 sourcemap 只有一份,它是 webpack 對 loader 生成的 sourcemap 進行簡化,然后再次生成的。
參考:webpack sourcemap 選項多種模式的一些解釋
基於vue-cli的配置調試#
vue-cli
是基於webpack的打包的效果和上面的一樣,只是配置不一樣。
在vue.config.js
文件中加如下配置即可:
module.exports = { configureWebpack: { devtool:'souce-map' } }
vscode編輯器調試#
vscode 調試一直有問題,debug模式已啟動一會就一定卡死,嘗試很多方式沒成功過,待續吧......