banner
飞天御剑流

飞天御剑流

前端,jAVAsCRIPT
github

uniapp 源代碼讀(是怎麼編譯ts的)

拉取代碼 dev 分支
這篇文章從這個 932a3ca2db739dbf76a281c6548ac169b53fac98 git commit hash 來讀
首先看包管理器,使用的是 yarn
image
yarn install 安裝依賴
打開 pkg.json 文件
我喜歡看代碼是從測試開始看,看看是怎麼運行的
image
運行下測試 test
需要找一個有 ts 文件的地方,看是怎麼運行起來的
測試的目標文件在這個文件夾下 packages/uni-template-compiler
入口是這裡 lib/index.js

可以看到這個包裡引用了 vue-template-compiler 也就是 vue 用於編譯模板文件的

image

vue-cli-plugin-uni 是主入口
index.js

chain webpack 配置
vue-cli-plugin-uni/lib/chain-webpack.js

webpack 配置
vue-cli-plugin-uni/lib/configure-webpack.js
然後查看入口

這個文件
vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js

image

vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js
這個文件裡處理了 vue 的 main.js 文件內容

vue-cli-plugin-uni/packages/webpack-preprocess-loader/preprocess/lib/preprocess.js
這個文件更具體的編譯 preprocess 方法編譯

vue-cli-plugin-uni/lib/env.js 這個文件開始編譯的時候用到了

// 編譯 vue 模板文件
uni-template-compiler/lib/index.js

// 正在編譯中 vue-cli-plugin-uni\lib\env.js
runByHBuilderX && console.log(uniI18n.__('compiling'))
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。