首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Week2-脚手架架构设计和框架搭建

源码深度精读 学习收获 如何将源码分析写进简历 学习明星项目的架构设计 获得脚手架执行流程的一种实现思路 获得脚手架调试本地源码的另一种方式 Node.js加载node_modules模块的流程 ✨...4-11 import-local执行流程深度分析 import-local的作用是:当我们的项目当中本地存在一个脚手架命令,同时全局在node当中也存在一个脚手架命令的时候,优先选用本地的node_modules.../usr/bin/env node "use strict"; /* eslint-disable import/no-dynamic-require, global-require */ const..._resolveFilename的作用是解析模块的真实路径,这个方法进去两个参数,其中第一个options我们发现了: Module....需要注意的是lerna命令注册过程中,需要传入builder以及handler两个方法,builder命令用于注册命令专属的options,而handelr用来处理命令的业务逻辑。

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

深入 lerna 发包机制 —— lerna version

顺便一提,这里关于 lerna命令是怎么进行分发以及执行的,这部分相关的逻辑可以参考 @lerna/command 这个包即源码目录 lerna/core/cli/command 中相关内容。...其他 git 相关的判断都是和此类似,这里就不做具体的赘述,这里如果有相关的需求是可以在这里学习一下相关工具函数的使用的,里面有一些平时不常用的 git 命令,个人觉得 lerna 这里的工具代码写的还是不错的...这里有个细节是这里的 lerna 去获取 tag 的时候,使用的是 git describe 命令,而且它附带的一些参数说明(可以去看下这个 describe-ref.js),这里获取到的 tag 是...if (repoVersion) { // 这里是用户lerna version [] 后面数组里面的 semver bump 参数,可以直接跳掉 prompt 过程,然后对对应的版本去直接...的工作原理,在使用 lerna 进行发包相关的操作的时候,lerna version 起到了一个很重要的作用,如果单独使用 lerna publish,一般选项情况下也是会首先进到 lerna version

2.7K30

【架构师(第四篇)】脚手架开发之Lerna源码分析

源码深度精读 学习收获 如何将源码分析的收获写进简历 学习明星项目的架构设计 获得脚手架执行流程的一种实现思路 脚手架调试本地源码的另一种方法 node.js 加载 node_modules 模块的流程...bootstrap debug moe", alias: "d" } }) .argv option options 可以定义多个选项,而 option 只可以定义一个,作用是一样的....command(createCmd) // 添加命令 .command(diffCmd) // 添加命令 .command(execCmd) // 添加命令 .command(...// 添加命令 .command(listCmd) // 添加命令 .command(publishCmd) // 添加命令 .command(runCmd) // 添加命令...const listable = require("@lerna/listable"); exports.command = "list"; // 配置命令的名称 exports.aliases

91120

分享一些你可能不知道的但却很有帮助的JavaScript小技巧

const key = 'dynamic' const obj = { dynamic: 'hey', [key]: 'howdy' } obj.dynamic // hey obj[key...现在,我将有一个额外的头痛问题,就是如何将它解析为一个整数。如果输入框接受浮动数(比如,16.56),那么parseFloat()怎么办?啊,各种各样的困惑和额外的工作!...在调用函数时,你可以为这些参数值,也可以不值。如果你不为param值,它将是未定义的,可能会引起一些不必要的副作用。 在定义函数参数时,有一种简单的方法可以将默认值传递给函数参数。...下面是一个例子,我们将默认值Hello传递给问候函数的参数信息。...---- 获取查询参数 window.location对象有一堆实用的方法和属性,我们可以通过这些属性和方法来获取浏览器URL的协议、主机、端口、域名等信息。

1.1K50

分享一些对你有帮助的JavaScript技巧

const key = 'dynamic' const obj = { dynamic: 'hey', [key]: 'howdy' } obj.dynamic // hey obj[key...现在,我将有一个额外的头痛问题,就是如何将它解析为一个整数。如果输入框接受浮动数(比如,16.56),那么parseFloat()怎么办?啊,各种各样的困惑和额外的工作!...在调用函数时,你可以为这些参数值,也可以不值。如果你不为param值,它将是未定义的,可能会引起一些不必要的副作用。 在定义函数参数时,有一种简单的方法可以将默认值传递给函数参数。...下面是一个例子,我们将默认值Hello传递给问候函数的参数信息。...我们可以通过这些属性和方法从浏览器的URL中获取协议、主机、端口、域名等信息。 我发现非常有用的属性之一是, window.location.search 搜索属性从位置URL中返回查询字符串。

1.2K20

【工程化】探索webpack5中的Module Federation

它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立 其还是会存在重复构建的问题,而且还会一定的上手成本 相关的命令: git submodule add : 添加子模块...用于声明需要引用的远程资源包的名称与模块名称,作为 Host 时,去消费哪些 Remote exposes: 可选,表示作为 Remote 时,export 哪些属性被消费 library: 可选,定义了 remote 应用如何将输出内容暴露给...这里包含了基础的用法、高级用法以及和一些框架的结合实践 注:该仓库使用 lerna 维护。...所以你需要安装 lerna npm install lerna -g 通过 lerna bootstrap 安装依赖 简单示例 来看 basic-host-remote 目录下有两个独立的 project...本示例在 advanced-api/dynamic-remotes 中可以找到 示例中有三个 project,app1/app2/app3。

1.8K20

突破项目瓶颈:2024 年 Monorepo 工具选择和实践

例如,CLI 模块需要读取项目 Config 配置文件中的信息并解析后传递给 Plugin 插件内部使用。...通过提供一套强大的命令行工具,Lerna 简化了 Monorepo 项目的操作,使开发者能够更轻松地管理和维护庞大的代码库,提高开发效率和代码的可维护性。...,内部会分别按序执行 lerna version 、conventional-changelog 和 git xxx 三步命令。...下面将逐一说明三步命令作用: 首先执行 lerna version 命令时,会询问是否需要将版本号统一修改为某一个版本,确认后则会自动修改,非常简单。...最后,执行的 Git 命令,只是将代码提交到存储仓库中。 在发布阶段,只需执行 lerna publish 即可自动发布 Monorepo 项目中的所有模块。

60710

URL地址解析

from=weixin&x=1#xiaomao 协议(http://) 整体模型中,我们在客户端基于HTTP将信息传给服务器,服务器想要把信息传递给客户端,也是基于HTTP传输回来的,那什么是传输协议呢...我们可以将HTTP传输协议理解为快递小妹,通过该传输协议能够实现客户端和服务端的内容之间的相互传输,它起到了帮着传输的作用,是一个进行信息传输的小工具。 那么我们是不是可以选择不同类型的快递小妹呢?...端口号(:80) 端口号的取值范围 0 ~ 65535,在这区间随便找个数字都可作为端口号 作用:使用端口号来区分同一台服务器的不同项目,当用户通过外网IP访问服务器时,就可以通过端口号来找到对应的项目...id=2688449 (这便是URL重写技术) 问号参信息(?...from=weixin&x=1) 客户端想要把信息传递给服务器,方式有很多种 URL地址问号参 请求报文传输(请求头和请求主体) 也可实现不同页面之间的信息交互,例如:从列表到详情 问号参最主要的作用就是通信

21210

HTTP-WEB网络基础

例如: FTP(文件传输协议) DNS(域名系统)HTTP 传输层 作用: 两台计算机之间的数据传输,服务于应用层。...在传输层有两个性质不同的协议: TCP(传输控制协议) UDP(用户数据协议) 网路层 作用: 用来处理在网络上流动的数据包,以何种方式传递给对方。 数据包是网络传输的最小数据单位。...作用: 把各种数据包传递给对方。 要保证可以 把数据包准确的传递给对方,有两个条件: IP 地址: 它标明了要传递到对方的 ip 地址。 MAC 地址: 它是指网卡的固定地址。...作用 : 提供域名 到 IP 地址解析服务。...DNS 协议提供通过域名查找IP 地址, 也可以通过IP 地址反查 域名 HTTP 与 各种协议之间的关系 HTTP 与上面各个协议之间 串联起来 理解各个协议个作用。 ​

26900

前端Coder应了解的HTTP or TCPIP 基础

例如:FTP(文件传输协议) DNS(域名系统)HTTP ❞ 传输层 ❝作用: 两台计算机之间的数据传输,服务于应用层。...在传输层有两个性质不同的协议:TCP(传输控制协议) UDP(用户数据协议) ❞ 网路层 ❝作用: 用来处理在网络上流动的数据包,以何种方式传递给对方。 数据包是网络传输的最小数据单位。...作用: 把各种数据包传递给对方。 要保证可以 把数据包准确的传递给对方,有两个条件: IP 地址:它标明了要传递到对方的 ip 地址。 MAC 地址:它是指网卡的固定地址。...作用 : 提供域名 到 IP 地址解析服务。...DNS 协议提供通过域名查找IP 地址, 也可以通过IP 地址反查 域名 ❞ HTTP 与 各种协议之间的关系 ❝HTTP 与上面各个协议之间 串联起来 理解各个协议个作用

30920

如何把Node项目部署到服务器上

如何将域名解析到服务器上 当我们选购好一台服务器之后,我们在控制台可以看到自己服务器的公网IP,这也是域名解析的关键。...域名可以在云服务平台内直接购买,一般一个域名在20-60¥之间,推荐使用 .com和 .cn的域名,当前其他后缀的域名也可以,取决于你对网站的定位。...不用担心,继续用命令行。 我们可以使用命令行从本地上传文件或文件夹到服务器, 也可以从服务器下载文件到本地电脑,这些操作无疑多亏了scp,接下来我将演示如何从本地上传文件夹到服务器。.../dist root@xxx.xxx.xxx:/website/ 其中-r是用来文件夹用的,如果你要上传的文件包含文件夹, 可以添加这个标识。 5....python-app.py --watch $ pm2 start binary-file -- --port 1520 我们可以传递给 CLI 的一些选项: # Specify an app name

4.4K50

ssh

ssh 远程登录原理 安全,即使被截获也没毛病 远程登录服务器语法 ssh user@hostname user:用户名 hostname:IP地址或域名 初次登录会提示 初次登录会提示 登录后服务器的信息会记录在...配置文件 在客户端中(主机,本子)中创建文件 ~/.ssh/config config文件就是用来创建别名机制的 在文件中输入 Host myserver1 HostName IP地址或域名...User 用户名 Host myserver2 HostName IP地址或域名 User 用户名 之后再使用服务器时,可以直接使用别名myserver1 和 myserver2...一键添加公钥 公钥添加到.ssh/authorized_keys中即可免密登录 误区:在服务器上的生成了密钥,传到了服务器本身的authorized_keys或者主机上的,不能自己登自己 可以将自己的密钥传递给多个服务器...scp命令不止限于主机和服务器之间文件,也可以在两台服务器之间文件,即source和destination都可以为服务器的路径 但是必须两台服务器之间的授权非常完整,否则会报错 所以可以将一台服务器上的文件传到本地

10910

django中url路由配置及渲染方式

今天我们学习如何配置url、如何参、如何命名、以及渲染的方式,内容大致有以下几个方面。...postid=10423125 协议              域名                      路径                   参数             django只搜索路径部分...view name     :(可有可无)url名字 4、在url中捕获参数    尖括号   可以捕获参数,传递给视图   本来捕获的值是字符串   如果要捕获两个参数,尖括号间可用...在path(‘teacher-/’,include('teacher.urls')),里面参是可以的,就是分路由每个都要参。...9、app_name的作用 -页面重定向     redirect     可以实现页面跳转     导入 from django.shortcuts import render,redirect,

3K20

前端工程化-打造企业通用脚手架

我们更期望能在命令行通过几个命令和选择、输入构建出不同端不同技术栈的项目。 上述只是新建项目的例子,前端开发过程中不止于此,一般有如下场景: 创建项目+集成通用代码。...业务代码编写完成后,还需要对其进行构建打包、上传服务器、域名绑定、区分测试正式环境、支持回滚...等持续集成、持续部署操作。...@focus/cli架构 如下架构图,采用Lerna做项目的管理工具,目前babel、vue-cli、create-react-app大型项目均采用Lerna进行管理。...多个Package时的本地link、单元测试、代码提交、代码发布,可以通过Lerna一键操作。 提升操作的标准化。多个Package时的发布版本和相互依赖可以通过Lerna保持一致性。...通用能力 上述从focus create projectName和focus add material的使用和核心实现阐述了脚手架@focus/cli在前端研发过程的所起到提效作用

73120
领券