04-脚手架框架搭建(二)(前端架构师入门笔记)

本文详细介绍了如何在Lerna源码中使用yargs进行本地调试,包括前期准备、源码阅读、npm项目本地依赖引用方法以及yargs的基本用法和命令定义。重点讲解了如何设置断点和解读命令执行过程。
摘要由CSDN通过智能技术生成

#关键词#

  • Lerna
  • 源码
  • 本地调试
  • yargs

 #前期准备#

1、找到lerna github官方源码仓库:https://github.com/lerna/lerna.git

2、git clone 克隆源码到本地

3、打开IDE:VSCODE

4、npm install 安装依赖

5、切换到Tags-v3.22.1版本:根据自行需要切换

6、找到lerna入口文件:根目录的package.json里有提示,或者直接找到core/lerna目录下的package.json文件

7、vscode打开node调试工具进行本地断点调试:

 其中调试按钮解析如下:

  • continue:继续执行程序,直到遇到下一个断点为止
  • step over:在普通代码行运行时,会逐行运行程序。若遇到调用自定义函数命令,且在该定义的函数里没有断点,则直接运行完该函数,不会进入该函数并逐行运行该函数内的代码
  • step into:逐行顺序运行程序。若遇到自定义函数(def),则进入该函数,逐行运行该函数内的代码。即,该步骤会按顺序走程序里的每一步
  • step out:当前运行在自定义函数(def)里时,如果在该自定义函数里没有断点,则会直接运行完当前自定义函数,停在调用函数的那一行

 #源码阅读# 

以执行lerna ls命令为例:

1:入口解读

  • require('.'):类似于require('./index.js')的写法
  • process.argv.slice(2):通过process.argv获取命令参数,前两个参数分别是process.execPath和当前执行的JavaScript文件路径,命令参数从第三个参数开始截取,此时截取到的是ls命令

 2、 进入到index.js(如下图1)文件,找到exports出的main函数进行执行解读

  • 进入@lerna/cli包(如下图2):exports出的lernaCLI()函数,是一个yargs对象,并传入globalOptions函数中返回经过一系列options配置后的yargs对象
  • main函数执行:其中cli()返回的是yargs对象,通过yargs进行ls命令的注册
  • ls命令注册:cli().command(listCmd)

图1 

 图2

 3、npm 项目本地依赖引用方法 

  • 上章有讲过本地依赖调试引用是通过npm link的方式来实现的,存在很大的问题,需要手动进行操作,并且上线后要全部进行unlink,如果把项目里所有包都link到全局的node_modules下,占空间不说,还会导致全局的link关系变的特别复杂和混乱
  • lerna项目本地依赖都是通过 file: 来引用(见下图1)
  • lerna发布后会通过resolveLocalDependencyLinks方法将file: 相关的文件链接到实际的本地文件路径(见下图2) 

 图1

 图2

 #yargs快速入门#

1、安装yargs库:npm install yargs -s

2、代码示例:

#!/usr/bin/env node

const yargs = require('yargs/yargs');


const argv = process.argv.slice(2);
const cli = yargs();
const pkg = require('../package.json');

const context = {
	hdkCliVersion: pkg.version
}

cli
	// 使用说明
	.usage('Usage: hdk-cli [command] <options>')
	// 最少命令数
	.demandCommand(1, "a command is required")
	// 严格模式,不能识别命令时会有错误提示
	.strict()
	// 输错命令,找最相似的命令返回
	.recommendCommands()
	// 处理错误定制
	.fail((err, msg) => {
		console.log(err);
		console.log(msg);
	})
	// 别名
	.alias("h", "help")
	.alias("v", "version")
	// 定义命令宽度
	.wrap(cli.terminalWidth())
	// 结束语
	.epilogue('footer')
	.options({
		debug:{
			type: 'boolean',
			describe: "debugger",
			alias: 'd'
		}
	})
	.option('registry', {
		type: 'string',
		describe: "define registry", 
		alias: 'r'
		// hidden: true
	})
	// 命令分组
	.group(['debug'], "dev options")
	.command('init [name]', 'init project', (yargs) => {
		yargs.option('name', {
			type: 'string',
			describe: 'name of project',
			alias: 'n'
		})
	},(argv) => {
		console.log(argv)
	})
	.command({
		command:'list',
		alias:['ls'],
		describe: 'list project',
		builder:(yargs) => {},
		handler:(argv) => {}
	})
	// .argv; 合并注入参数
	.parse(argv, context)
### 回答1: 在vue实战入门基础篇中,我们将会从零开始搭建一个仿门户网站的实例,这个实例包括了前端页面的设计和后端API的实现。在开始这个实例之前,我们需要选定一个开发框架,这个框架将会支持我们在开发中的需求,并且方便我们的团队协作和项目管理。 在选择框架之前,我们需要考虑以下因素:开发速度、团队协作、可维护性和可扩展性。因此,我们应该选择一个适合我们现有技术栈的框架,并且具备这些因素。 在这个实例中,我们选择了vue.js作为我们的开发框架。vue.js是一个流行的JavaScript框架,它提供了强大的工具来开发富客户端应用程序。它易于使用和学习,并且对于大多数应用程序而言,它具有良好的性能。 在搭建框架时,我们采用了vue-cli工具来建立vue.js的项目模板。vue-cli可以为我们自动配置开发环境、构建工具和其他常见的开发工具,从而减少我们的开发时间。使用vue-cli搭建框架时,我们可以根据我们的需求选择所支持的特性,并且自定义构建配置。 搭建框架后,我们还需要依次配置vue-router、vuex、axios等工具,用于路由管理、状态管理和API请求。这些工具可以加速我们的开发过程,并且有助于我们在开发过程中实现更好的代码组织,提高代码质量和可维护性。 总之,搭建一个好的开发框架是成功的开发的关键之一。我们应该选择一个适合我们项目需求的框架,同时尽可能地利用现有的工具和库来支持我们的开发过程。 ### 回答2: Vue实战入门基础篇:从零开始仿门户网站实例-开发框架搭建,主要是介绍如何使用Vue.js开发一个门户网站的搭建方法。在此基础篇中,我们将会学习如何使用vue-cli建立Vue.js的基本项目框架,并结合Bootstrap、FontAwesome等前端开发产品来丰富我们的门户网站页面。 首先,我们需要安装Vue CLI,这是Vue.js官方提供的脚手架工具,可以快速生成Vue.js项目的基本架构。安装Vue CLI之后,我们可以通过命令行在终端中进入到目标项目目录,并通过vue create projectName命令来创建一个Vue.js项目。 接下来,我们需要安装Bootstrap和FontAwesome,因为它们是实现我们门户网站样式和布局的重要工具。我们可以通过npm命令来安装它们:npm install bootstrap @fortawesome/fontawesome-free。 安装成功之后,我们可以在Vue.js的组件中使用Bootstrap和FontAwesome提供的样式和图标。在项目开发中,我们可以通过组件化的思想,将各个部分拆分为独立的组件,再通过父子组件的嵌套来构建整个门户网站的页面。 在搭建门户网站页面的过程中,还需要注意一些细节问题。比如在Vue.js中如何使用路由功能来实现不同页面之间的跳转,如何进行页面的布局和调整等等。通过综合运用Vue.js的基本语法和其它前端产品,我们可以初步完成一个仿门户网站的实例。 总之,Vue实战入门基础篇:从零开始仿门户网站实例-开发框架搭建,是一个非常实用的课程,可以帮助我们了解Vue.js在实际项目开发中的具体应用。掌握这些基础知识之后,我们可以更加专业、高效地进行门户网站开发工作。 ### 回答3: 本次教程是基于Vue.js框架来实现仿门户网站的实例教程,本文将重点介绍如何搭建开发框架。 首先,我们需要安装Vue.js框架,可以通过官网下载或者使用npm命令行工具安装,具体方法可以参考Vue.js官网上的介绍。 安装好Vue.js之后,我们需要使用Vue.js提供的命令行工具Vue CLI来搭建开发框架。首先,我们需要在命令行中输入以下命令: ``` npm install -g @vue/cli ``` 接着,我们可以创建一个新的Vue项目,可以使用以下命令: ``` vue create project-name ``` 其中,project-name是你自定义的项目名称。接下来,我们可以根据自己的需求选择不同的配置。例如,我们可以选择手动配置,来选择需要的插件和功能。然后,我们需要安装一些Vue.js的插件,例如Vue Router和Vuex。 ``` npm install vue-router vuex --save ``` 安装好插件之后,我们需要在项目中创建一些组件和页面。这些组件和页面可以根据实际需求来创建,例如首页组件、新闻组件、产品组件等。在创建组件和页面之前,我们需要在src目录下创建一个views文件夹来存放页面组件,在src/components文件夹下创建组件。 接着,我们可以使用Vue.js提供的语法来编写组件、页面和路由等。在编写代码的过程中,我们可以参考Vue.js官方文档和各种教程、博客等。 总而言之,搭建好开发框架是Vue.js实现仿门户网站的第一步。在开发过程中,我们需要不断学习和掌握Vue.js的语法、功能和特点,结合实际需求来不断优化和完善代码,最终实现一个完整的门户网站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端-张冠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值