找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 关于uni-build打包小程序的源码分析

框架 关于uni-build打包小程序的源码分析

灰儿 2022-8-6 21:55:48
  我们使用uni-app的脚手架开发微信小程序其实已经比较方便。但是uni-app框架是怎么实现将vue项目打包成微信小程序项目,很少有人关注。关于uni-build打包小程序的源码分析。底层还是使用的webpack打包框架,uni-app实现了自己的一套算法。针对小程序所要求的文件结构,将VUE项目转换成微信小程序可识别的项目结构。看了一下源码,不是很好读,我接下来主要把找到的编译入口方法展示给大家看下,有需要的朋友可以顺着入口往里解读。
前言
  小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。
  一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
  
  一个小程序页面由四个文件组成,分别是:

  注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名。
一、打包实现在依赖包vue-cli-plugin-uni中,入口看build.js文件
uni-build打包的build源码
View Code
二、打包微信小程序的代码入口地址
mp的入口文件index.js中定义了微信小程序打包的相关配置
View Code
三、运行打包前所捕获到的 webpackConfigs 相关参数
[url=][/url]
[ { mode: 'production',    context: 'D:\\02code\\app-wechat-supply',    devtool: false,    node:     { setImmediate: false,       process: 'mock',       dgram: 'empty',       fs: 'empty',       net: 'empty',       tls: 'empty',       child_process: 'empty' },    output:     { path: 'D:\\02code\\app-wechat-supply\\dist\\mit',       filename: '[name].js',       publicPath: '/',       chunkFilename: '[id].js',       globalObject: 'global' },    resolve:     { alias: [Object],       extensions: [Array],       modules: [Array],       plugins: [Array] },    resolveLoader: { modules: [Array], plugins: [Array] },    module:     { noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/,       rules: [Array] },    optimization:     { splitChunks: [Object],       minimizer: [Array],       noEmitOnErrors: false,       runtimeChunk: [Object],       namedModules: false },    plugins:     [ VueLoaderPlugin {},       [DefinePlugin],       [CaseSensitivePathsPlugin],       [FriendlyErrorsWebpackPlugin],       [MiniCssExtractPlugin],       [OptimizeCssnanoPlugin],       [HashedModuleIdsPlugin],       [NamedChunksPlugin],       [DefinePlugin],       [CopyPlugin],       [CopyPlugin],       WebpackUniAppPlugin {},       WebpackUniMPPlugin {},       [ProvidePlugin],       [CopyPlugin] ],    entry: [Function: entry],    performance: { assetFilter: [Function: assetFilter], hints: false } } ][url=][/url]

四、小程序打包后的项目结构
参考资料:

每天都是崭新的开始 ——Mr.司满(214382122)[]~( ̄▽ ̄)~*

分类: vue


您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。