皮皮网
皮皮网
制造生产管理php源码

【吃鱼源码】【魔方手游源码】【ccminer挖矿木马源码】lisk源码

时间:2024-11-30 00:29:13 分类:知识 编辑:炸鸡加盟网站源码怎么找
1.UMI3源码解析系列之构建原理

lisk源码

UMI3源码解析系列之构建原理

       基于前面umi插件机制的源码原理可以了解到,umi是源码一个插件化的企业级前端框架,它配备了完善的源码插件体系,这也使得umi具有很好的源码可扩展性。umi的源码吃鱼源码全部功能都是由插件完成的,构建功能同样是源码魔方手游源码以插件的形式完成的。下面将从以下两个方面来了解umi的源码构建原理。

UMI命令注册

       想了解umi命令的源码注册流程,咱们就从umi生成的源码项目入手。

       从umi初始化的源码项目package.json文件看,umi执行dev命令,源码实际执行的源码是start:dev,而start:dev最终执行的源码ccminer挖矿木马源码是umidev。

"scripts":{ "dev":"npmrunstart:dev",源码"start:dev":"cross-envREACT_APP_ENV=devMOCK=noneUMI_ENV=devumidev"}

       根据这里的umi命令,我们找到node_modules里的源码umi文件夹,看下umi文件夹下的package.json文件:

"name":"umi","bin":{ "umi":"bin/umi.js"}

       可以看到,这里就是iapp导入源码格式定义umi命令的地方,而umi命令执行的脚本就在bin/umi.js里。接下来咱们看看bin/umi.js都做了什么。

#!/usr/bin/envnoderequire('v8-compile-cache');constresolveCwd=require('@umijs/deps/compiled/resolve-cwd');const{ name,bin}=require('../package.json');constlocalCLI=resolveCwd.silent(`${ name}/${ bin['umi']}`);if(!process.env.USE_GLOBAL_UMI&&localCLI&&localCLI!==__filename){ constdebug=require('@umijs/utils').createDebug('umi:cli');debug('Usinglocalinstallofumi');require(localCLI);}else{ require('../lib/cli');}

       判断当前是否执行的是本地脚手架,若是黄历小程序源码,则引入本地脚手架文件,否则引入lib/cli。在这里,我们未开启本地脚手架指令,所以是引用的lib/cli。

//获取进程的版本号constv=process.version;//通过yParser工具对命令行参数进行处理,此处是将version和help进行了简写constargs=yParser(process.argv.slice(2),{ alias:{ version:['v'],help:['h'],},boolean:['version'],});//若参数中有version值,并且args._[0]为空,此时将version字段赋值给args._[0]if(args.version&&!args._[0]){ args._[0]='version';constlocal=existsSync(join(__dirname,'../.local'))?chalk.cyan('@local'):'';console.log(`umi@${ require('../package.json').version}${ local}`);//若参数中无version值,并且args._[0]为空,此时将help字段复制给args._[0]}elseif(!args._[0]){ args._[0]='help';}

       处理完version和help后,紧接着会执行一段自执行代码:

(async()=>{ try{ //读取args._中第一个参数值switch(args._[0]){ case'dev'://若当前运行环境是dev,则调用Node.js的核心模块child_process的fork方法衍生一个新的Node.js进程。scriptPath表示要在子进程中运行的模块,这里引用的是forkedDev.ts文件。constchild=fork({ scriptPath:require.resolve('./forkedDev'),});//ref:///api/process/signal_events.html///post/

本文地址:http://0553.net.cn/html/47d704392909.html

copyright © 2016 powered by 皮皮网   sitemap