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

Vue3.x源碼調(diào)試的實現(xiàn)方法

 更新時間:2019年10月13日 09:13:24   作者:徐志偉醬  
這篇文章主要介紹了Vue3.x源碼調(diào)試的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

幾句話說下我看源碼的方式

斷點調(diào)試

根據(jù)demo小例子或者api的使用姿勢進行調(diào)試,每個小例子只關心其走過的邏輯分支。

如何調(diào)試vue3.x的ts源碼

  • 官網(wǎng)說使用 yarn dev 命令就可以對其進行調(diào)試,可是運行該命令后,是生成過后的代碼,不能對其編寫的ts源碼進行調(diào)試。
  • 其實再生成對應的sourcemap文件,便可以原汁原味的調(diào)試。
  • 先看下幾個截圖:

 

如果這是你想要的調(diào)試效果,下面請看下如何生成sourcemap文件。

生成sourcemap文件

rollup.js中文文檔

// rollup.config.js
export default {
 // 核心選項
 input,   // 必須
 external,
 plugins,

 // 額外選項
 onwarn,

 // danger zone
 acorn,
 context,
 moduleContext,
 legacy

 output: { // 必須 (如果要輸出多個,可以是一個數(shù)組)
  // 核心選項
  file,  // 必須
  format, // 必須
  name,
  globals,

  // 額外選項
  paths,
  banner,
  footer,
  intro,
  outro,
  sourcemap,
  sourcemapFile,
  interop,

  // 高危選項
  exports,
  amd,
  indent
  strict
 },
};

可以看到output對象有個sourcemap屬性,其實只要配置上這個就能生成sourcemap文件了。 在vue-next項目中的rollup.config.js文件中,找到createConfig函數(shù)

function createConfig(output, plugins = []) {
 const isProductionBuild =
  process.env.__DEV__ === 'false' || /\.prod\.js$/.test(output.file)
 const isGlobalBuild = /\.global(\.prod)?\.js$/.test(output.file)
 const isBunlderESMBuild = /\.esm\.js$/.test(output.file)
 const isBrowserESMBuild = /esm-browser(\.prod)?\.js$/.test(output.file)

 if (isGlobalBuild) {
  output.name = packageOptions.name
 }

 const shouldEmitDeclarations =
  process.env.TYPES != null &&
  process.env.NODE_ENV === 'production' &&
  !hasTSChecked

 const tsPlugin = ts({
  check: process.env.NODE_ENV === 'production' && !hasTSChecked,
  tsconfig: path.resolve(__dirname, 'tsconfig.json'),
  cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'),
  tsconfigOverride: {
   compilerOptions: {
    declaration: shouldEmitDeclarations,
    declarationMap: shouldEmitDeclarations
   },
   exclude: ['**/__tests__']
  }
 })
 // we only need to check TS and generate declarations once for each build.
 // it also seems to run into weird issues when checking multiple times
 // during a single build.
 hasTSChecked = true

 const externals = Object.keys(aliasOptions).filter(p => p !== '@vue/shared')

 output.sourcemap = true // 這句話是新增的
 return {
  input: resolve(`src/index.ts`),
  // Global and Browser ESM builds inlines everything so that they can be
  // used alone.
  external: isGlobalBuild || isBrowserESMBuild ? [] : externals,
  plugins: [
   json({
    namedExports: false
   }),
   tsPlugin,
   aliasPlugin,
   createReplacePlugin(
    isProductionBuild,
    isBunlderESMBuild,
    isGlobalBuild || isBrowserESMBuild
   ),
   ...plugins
  ],
  output,
  onwarn: (msg, warn) => {
   if (!/Circular/.test(msg)) {
    warn(msg)
   }
  }
 }
}

加上一句output.sourcemap = true即可。 然后運行 yarn dev,可以看到vue/dist/vue.global.js.map文件已生成。 再然后你在xxx.html通過script的方式引入vue.global.js文件,即可調(diào)試, 效果如上圖。

弱弱的說一句,我對ts和rollup.js不熟,幾乎陌生,但是不影響學習vue3.x源碼。 vue3.x的源碼這次分幾個模塊編寫的,所以學習也可以分模塊學習,比如學習響應式系統(tǒng),運行yarn dev reactivity命令生成對應文件,然后配合__tests__下的案列,自己進行調(diào)試學習。(額,好像說了好幾句...)

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 解決vue項目運行出現(xiàn)warnings?potentially?fixable?with?the?`--fix`?option的報錯問題

    解決vue項目運行出現(xiàn)warnings?potentially?fixable?with?the?`--fix

    這篇文章主要介紹了解決vue項目運行出現(xiàn)warnings?potentially?fixable?with?the?`--fix`?option的報錯問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • 快速處理vue渲染前的顯示問題

    快速處理vue渲染前的顯示問題

    下面小編就為大家分享一篇快速處理vue渲染前的顯示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 如何通過Vue3+Element?Plus自定義彈出框組件

    如何通過Vue3+Element?Plus自定義彈出框組件

    這篇文章主要給大家介紹了關于如何通過Vue3+Element?Plus自定義彈出框組件的相關資料,彈窗是前端開發(fā)中的一種常見需求,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-05-05
  • Vue 路由返回恢復頁面狀態(tài)的操作方法

    Vue 路由返回恢復頁面狀態(tài)的操作方法

    在使用 Vue 開發(fā)前端的時候遇到一個場景在首頁進行一些數(shù)據(jù)搜索,點擊搜索結果進入詳情頁面,瀏覽詳情頁后返回主頁,所以需要在返回后恢復跳轉前的頁面參數(shù)狀態(tài),今天通過本文給大家分享Vue 路由頁面狀態(tài)返回的操作方法,一起看看吧
    2021-07-07
  • 詳解vee-validate的使用個人小結

    詳解vee-validate的使用個人小結

    本篇文章主要介紹了詳解vee-validate的使用個人小結,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-06-06
  • Vue.js 中 ref 和 reactive 的區(qū)別及用法解析

    Vue.js 中 ref 和 reactive 的區(qū)別及用法解析

    在Vue.js中,ref主要用于創(chuàng)建響應式的引用,通過.value屬性來訪問和修改值,特別適用于需要頻繁更改整個值的場景,而reactive則用于創(chuàng)建深度響應的對象或數(shù)組,本文給大家介紹Vue.js 中 ref 和 reactive 的區(qū)別及用法,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Vue瀏覽器鏈接與接口參數(shù)實現(xiàn)加密過程詳解

    Vue瀏覽器鏈接與接口參數(shù)實現(xiàn)加密過程詳解

    這篇文章主要介紹了Vue瀏覽器鏈接與接口參數(shù)實現(xiàn)加密過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-12-12
  • vue中組件<router-view>使用方法詳解

    vue中組件<router-view>使用方法詳解

    這篇文章主要給大家介紹了關于vue中組件<router-view>使用方法的相關資料,Vue 路由中的 <router-view/> 是用來承載當前級別下的子級路由的一個視圖標簽,此標簽的作用就是顯示當前路由級別下一級的頁面,需要的朋友可以參考下
    2024-06-06
  • Vue3 使用Vuex和router的注意事項及操作方法

    Vue3 使用Vuex和router的注意事項及操作方法

    在vue2中 使用的?this.$route?和?this.$router?this.$store的使用在vue3中完全適用,這篇文章主要介紹了Vue3 使用Vuex和router的注意事項及操作方法,需要的朋友可以參考下
    2022-12-12
  • 討論vue中混入mixin的應用

    討論vue中混入mixin的應用

    這篇文章主要介紹了vue中混入mixin的理解和應用,對vue感興趣的同學,可以參考下
    2021-05-05

最新評論

饶平县| 平乡县| 磐安县| 彭州市| 天水市| 离岛区| 凉城县| 太仆寺旗| 兴安盟| 蓝山县| 游戏| 黑龙江省| 新密市| 龙山县| 门源| 田林县| 黑龙江省| 上思县| 大港区| 理塘县| 疏勒县| 平度市| 康马县| 象山县| 镇远县| 娄烦县| 临沭县| 南木林县| 丰城市| 宁阳县| 怀宁县| 盐亭县| 布尔津县| 靖安县| 胶州市| 新安县| 黄山市| 任丘市| 罗平县| 荃湾区| 屯昌县|