前端架构: 脚手架框架之yargs的11种基础核心特性的应用教程

使用 yargs 定义前端脚手架命令 用处:设置用法消息以显示要使用的命令。 阅读详情

脚手架框架之yargs的基础核心特性与应用


1 )概述

  • yargs 是脚手架当中使用量非常大的一个框架
  • 进入它的npm官网: https://www.npmjs.com/package/yargs
    • 目前版本: 17.7.2
    • Weekly Downloads: 71,574,188 (动态数据)
    • 最近更新:last month (github)
    • 说明这是一个比较优质的库

2 )对 yargs 的应用

  • 准备一个脚手架工程,比如 xyzcli
  • 进行 npm 初始化 $ npm init -y
  • 修改package.json中的关键配置
    • 添加 bin 属性,其值设置为: “bin/index.js”
  • 在脚手架工程目录中执行安装开发依赖
    • $ npm i yargs -S

2.1 初步实践,了解其基本API

  • 编写 bin/index.js
    #!/usr/bin/env node
    
    const yargs = require('yargs/yargs');
    const { hideBin } = require('yargs/helpers');
    console.log(hideBin(process.argv));
    yargs();
    
    • 现在执行 $ npm link 方便调试
    • 执行 $ xyzcli --help, 可以看到输出 [ '--help' ]

2.2 继续优化,窥探其基本用法

  • 好,接着修改 bin/index.js
    #!/usr/bin/env node
    
    const yargs = require('yargs/yargs');
    const { hideBin } = require('yargs/helpers'); // 用于参数解析
    const arg = hideBin(process.argv);
    
    yargs(arg)
      .argv;
    
  • 现在执行 $ xyzcli --help 可以看到输出
    选项:
      --help     显示帮助信息                                                 [布尔]
      --version  显示版本号                                                   [布尔]
    
  • 执行 $ xyzcli --version
    1.0.0
    
  • 这时候说明最简易版脚手架已经开发好了

2.3 探究 strict 模式

  • 现在发现差异,如果执行 $ xyzcli --help 有输出
  • 但是执行 $ xyzcli -h 就没有输出了
  • 可以加入 strict 模式,可以对无用参数输入进行提示,如下添加
    yargs(arg)
      .strict()
      .argv;
    
  • 继续执行 $ xyzcli -h 看到输出了报错提示
    选项:
      --help     显示帮助信息                                                 [布尔]
      --version  显示版本号                                                   [布尔]
    
    无法识别的选项:h
    
  • 注意这个 strict 在 lerna 源码中有用到

2.4 对 usage 这个API的使用

  • 继续测试 usage
    yargs(arg)
      .usage('Usage: xyzcli [command] <options>')
      .strict()
      .argv;
    
  • 执行 $ xyzcli --help,查看输出
    Usage: xyzcli [command] <options>
    
    选项:
      --help     显示帮助信息                                                 [布尔]
      --version  显示版本号                                                   [布尔]
    
  • 看到,最顶部多了 Usage: xyzcli [command] <options>

2.5 对 demandCommand 这个API的使用

  • 这个API表示最少输入多少命令

    yargs(arg)
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .argv;
    
  • 只执行 $ xyzcli, 可查看输出

    Usage: xyzcli [command] <options>
    
    选项:
      --help     显示帮助信息                                                 [布尔]
      --version  显示版本号                                                   [布尔]
    
    A command is required. Pass --help to see all available commands and options.
    
  • 可以发现,最后多了一行 A command is required. Pass --help to see all available commands and options.

  • 这个API就可以对命令参数过少时进行提示

2.6 对 alias 这个API的使用

  • 对现有命令或参数起别名

    yargs(arg)
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      .argv;
    
  • 对 -h 进行测试,执行 $ xyzcli -h,输出

    Usage: xyzcli [command] <options>
    
    选项:
      -h, --help     显示帮助信息                                             [布尔]
      -v, --version  显示版本号                                               [布尔]
    
  • 对 -v 进行测试,执行 $ xyzcli -v,输出

    1.0.0
    

2.7 对 wrap 这个API的使用

  • 对终端cli窗口的宽度的设定
    yargs(arg)
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      .wrap(50) // 这里设定为 50
      .argv;
    
  • 执行 $ xyzcli -h,查看宽度
    Usage: xyzcli [command] <options>
    
    选项:
      -h, --help     显示帮助信息               [布尔]
      -v, --version  显示版本号                 [布尔]
    
  • 修改宽度为 80
    .wrap(80) // 这里设定为 80
    
  • 再次执行 $ xyzcli -h,查看宽度
    Usage: xyzcli [command] <options>
    
    选项:
      -h, --help     显示帮助信息                                             [布尔]
      -v, --version  显示版本号                                               [布尔]
    
  • 可以看到两者不同宽度的区别
  • 如果想要占满终端屏幕, 可以使用 terminalWidth()
    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      .wrap(cli.terminalWidth()) // 这里
      .argv;
    
  • terminalWidth() 会返回终端宽度,这里没有必要做演示了,会铺满终端

2.8 对 epilogue 这个API的使用

  • 它可以在结尾加上我们想要说的话

    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      .wrap(cli.terminalWidth())
      .epilogue('We hope you guys work happily every day!') // 注意这里
      .argv;
    
  • 执行 $ xyzcli -h, 查看输出

    Usage: xyzcli [command] <options>
    
    选项:
      -h, --help     显示帮助信息                                                                  [布尔]
      -v, --version  显示版本号                                                                    [布尔]
    
    We hope you guys work happily every day!
    
  • 可以看到最后一行,输出 We hope you guys work happily every day!

  • 结合 dedent 库来使用,首先进行安装,$ npm i dedent -S

  • 基于 dedent 库来设定 epilogue, 达成去除缩进(包含首位空格)的目的

    #!/usr/bin/env node
    
    const yargs = require('yargs/yargs');
    const { hideBin } = require('yargs/helpers');
    const dedent = require('dedent'); // 注意这里
    
    const arg = hideBin(process.argv);
    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      .wrap(cli.terminalWidth())
      .epilogue(dedent`
        Welcome to use xyzcli command line.
        We hope you guys work happily every day!
    
        For more information, please visit: https://xxx.com/xxx/xyzcli
      `)
      .argv;
    
  • 执行 $ xyzcli -h,查看输出

    Usage: xyzcli [command] <options>
    
    选项:
      -h, --help     显示帮助信息                                                                  [布尔]
      -v, --version  显示版本号                                                                    [布尔]
    
    Welcome to use xyzcli command line.
    We hope you guys work happily every day!
    
    For more information, please visit: https://xxx.com/xxx/xyzcli
    

2.9 对 options 这个API的使用

  • 全局选项,对所有 command 都有效
    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      // .alias('d', 'debug') // 这个设置别名,同下面,二者取其一即可
      .wrap(cli.terminalWidth())
      .epilogue(dedent`
        Welcome to use xyzcli command line.
        We hope you guys work happily every day!
    
        For more information, please visit: https://xxx.com/xxx/xyzcli
      `)
      .options({
        debug: {
          type: 'boolean',
          describe: 'Bootstrap debug mode',
          alias: 'd' // 这里添加了,上面就可以忽略了,推荐写在这里
        }
      })
      .argv;
    
  • 这里设置了 options,内部传入一个对象进行配置,这里别名的两种设置方式,推荐下面这种,在options内部设定
  • 执行 $ xyzcli -h, 查看输出结果
    Usage: xyzcli [command] <options>
    
    选项:
      -d, --debug    Bootstrap debug mode                                                          [布尔]
      -h, --help     显示帮助信息                                                                  [布尔]
      -v, --version  显示版本号                                                                    [布尔]
    
    Welcome to use xyzcli command line.
    We hope you guys work happily every day!
    
    For more information, please visit: https://xxx.com/xxx/xyzcli
    
  • 可见,这里添加了 -d 和 --debug 的选项

2.10 对 option 这个API的使用

  • 这个 option 和 options 这两个API用途差不多, 但使用方式不一样
    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      // .alias('d', 'debug')
      .wrap(cli.terminalWidth())
      .epilogue(dedent`
        Welcome to use xyzcli command line.
        We hope you guys work happily every day!
    
        For more information, please visit: https://xxx.com/xxx/xyzcli
      `)
      .options({
        debug: {
          type: 'boolean',
          describe: 'Bootstrap debug mode',
          alias: 'd' // 这里添加了,上面就可以忽略了,推荐写在这里
        }
      })
      .option('registry', {
        type: 'string',
        describe: 'Define global registry',
        alias: 'r',
        // hidden: true, // 这个就不会出现在提示中,但是可以作为开发调试使用 --registry 或 -r
      })
      .argv;
    
  • option 这个API,可以配置 hidden 选项,这个配置之后,不会出现在终端提示中,但是可作为开发调试使用,$ xyzcli -r
    • 需要后期结合这个参数做对应的处理程序,这块先略过
    • 同时,需注意,options 中是没有 hidden 配置选项的
  • 执行 $ xyzcli -h,查看输出结果
    Usage: xyzcli [command] <options>
    
    选项:
      -d, --debug     Bootstrap debug mode                                                         [布尔]
      -r, --registry  Define global registry                                                     [字符串]
      -h, --help      显示帮助信息                                                                 [布尔]
      -v, --version   显示版本号                                                                   [布尔]
    
    Welcome to use xyzcli command line.
    We hope you guys work happily every day!
    
    For more information, please visit: https://xxx.com/xxx/xyzcli
    
    A command is required. Pass --help to see all available commands and options.
    

2.11 对 group 这个API的使用

  • 对命令进行分组管理, 这次全量代码都在这里
    #!/usr/bin/env node
    
    const yargs = require('yargs/yargs');
    const { hideBin } = require('yargs/helpers');
    const dedent = require('dedent');
    
    const arg = hideBin(process.argv);
    const cli = yargs(arg)
    
    cli
      .usage('Usage: xyzcli [command] <options>')
      .demandCommand(1, 'A command is required. Pass --help to see all available commands and options.')
      .strict()
      .alias('h', 'help')
      .alias('v', 'version')
      // .alias('d', 'debug')
      .wrap(cli.terminalWidth())
      .epilogue(dedent`
        Welcome to use xyzcli command line.
        We hope you guys work happily every day!
    
        For more information, please visit: https://xxx.com/xxx/xyzcli
      `)
      .options({
        debug: {
          type: 'boolean',
          describe: 'Bootstrap debug mode',
          alias: 'd' // 这里添加了,上面就可以忽略了,推荐写在这里
        }
      })
      .option('registry', {
        type: 'string',
        describe: 'Define global registry',
        alias: 'r',
        // hidden: true, // 这个就不会出现在提示中,但是可以作为开发调试使用 --ci
      })
      .group(['debug'], '开发选项:')
        .group(['registry'], '其他选项:')
      .argv;
    
  • 执行 $ xyzcli -h,查看输出结果
    Usage: xyzcli [command] <options>
    
    开发选项:
      -d, --debug  Bootstrap debug mode                                                            [布尔]
    
    其他选项:
      -r, --registry  Define global registry                                                     [字符串]
    
    选项:
      -h, --help     显示帮助信息                                                                  [布尔]
      -v, --version  显示版本号                                                                    [布尔]
    
    Welcome to use xyzcli command line.
    We hope you guys work happily every day!
    
    For more information, please visit: https://xxx.com/xxx/xyzcli
    
  • 可以看到 Dev Options 这一分组,把 debug 包含进去了,剩余其他的都在 选项中

3 )参考 lerna 的实现细节

统一命令行接口(CLI)框架:从设计到实现,打造高效开发总控台 命令行接口(CLI)是开发者和系统交互的基础工具,其核心原理在于解析用户输入的命令与参数,并调用相应的程序或脚本执行任务。一个设计良好的CLI能显著提升技术价值,它通过标准化操作、降低认知负担和隐藏底层复杂性,成为团队协作和项目自动化的关键。在实际应用场景中,CLI广泛用于项目构建、测试、部署及运维等全生命周期管理。本文聚焦于如何构建一个类似 `onecli` 的统一命令行框架,它通过**命令解析器**和**插件系统**等核心组件,将分散的、复杂的操作封装成语义清晰的子命令,从而实现“一个命令,掌控全局”的 阅读详情

相关推荐

Node.js命令行参数处理:从process.argv到commander实战指南

命令行参数是Node.js脚本实现自动化与工程化的核心能力,其本质是进程启动时操作系统向程序传递的原始字符串。理解process.argv的底层结构是掌握参数解析的前提,它揭示了参数在Shell与Node.js间的真实传递形态;在此基础上,通过minimist等轻量解析器可完成类型转换与结构化,而commander则提供完整的CLI框架能力,支持子命令、自动帮助文档与参数校验。该能力直接决定脚本是否具备生产可用性——能否被团队协作使用、集成进CI/CD、安全稳定运行。本文聚焦Node.js命令行参数处理的三

weixin_30824599的博客 479

yargs入门

yargs开发脚手架

zxw的博客 593

t3code CLI:基于Turbo的TypeScript全栈代码生成工具

t3code 是面向 TypeScript 全栈开发者的工程化 CLI 工具范式,其核心依托 TurboRepo 的 task 图谱与类型安全执行能力,实现跨 workspace 的自动化代码生成。它将 Next.js 路由、tRPC 接口、Prisma 模型、Zod 验证等多层类型定义联动起来,通过命令行驱动端到端类型一致性。相比 Commander 等传统 CLI,t3code 解决了类型丢失、workspace 上下文缺失和构建生命周期脱节三大痛点,特别适用于需要 Electron 打包、iOS PW

weixin_33417488的博客 224

脚手架工具——yargs的使用

脚手架工具yargs: const yargs = require('yargs/yargs') const { hideBin } = require('yargs/helpers') const dedent = require('dedent') const arg = hideBin(process.argv) const cli = yargs(arg) cli // 用法说明 .usage("usage:liushuran-test [command] <options>")

qq_25436827的博客 1078

ABAP CUA 中央系统里 Partner Profile 的 USERCLONE 错误修正与排障思路

CUA用户分发问题排查要点 在CUA项目中,USERCLONE配置是用户主数据分发的关键环节。当出现分发异常时,应优先检查WE20中的Partner Profile配置,特别是Outbound Parameters中的USERCLONE记录是否存在及其Basic Type是否正确。Basic Type版本需匹配中央系统和子系统的共同支持版本,而非单纯采用最高版本。常见问题包括: 缺少USERCLONE配置 Basic Type版本高于子系统支持范围 端口配置不当 修正时需在中央系统WE20中维护正确的Mes

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1335

Node CLI 之 Yargs (2)

yargs 是一个用于处理命令行参数的 Node.js 库第一个参数 命令名称第二个参数 命令描述第三个参数 配置参数、别名、类型、默认值等第四个参数 处理命令逻辑举个例子yargs.command('get',})},.help().argv}).argv;${`);`);`);`);第一个参数 定义选项名称第二个参数 配置选项alias 选项简写description 选项描述type 选项值类型。

https://shixuebin.gitee.io/hexo-blog/ 558

aim-ui 组件脚手架 CLI:create-component 命令的原理与实战用法

**导读**:本文围绕 Aim 项目前端(`aim/web/ui`)中内置的 `aim-ui/cli` 脚手架工具展开,系统讲解其唯一命令 `create-component` 的参数语义、调用方式、执行流程与模板生成原理。读完本文,你将掌握如何通过 `npm run crc` / `npm run crc-kit` 快速生成一个符合 Aim UI 规范、带类型声明、样式与默认导出的 React

gitblog_00461的博客 939

第五节 Amesim《直动型溢流阀HCD建模》HCD5 学习资料

利用HCD原则创建直动型溢流阀的界面。这可能包括图形化表示直动型溢流阀的工作原理、操作方式和调节方法。这样的界面应当直观且易于理解,使用户能够轻松了解阀门的功能和使用方法。

m0_58052642的博客 1330

Medusa CLI 2.x 演进全解析:从项目脚手架到插件与集群编排的完整命令体系

Medusa 是面向 Agent 与开发者的开源无头电商平台,而 `@medusajs/cli`(源码位于 [packages/cli/medusa-cli](https://link.gitcode.com/i/58d864c2282bdb7544139acaf5f3def6))正是驱动整个平台初始化、开发、构建、数据库迁移与插件生命周期的核心命令行工具。本文基于 [packages/cli/m

gitblog_00365的博客 517

Flutter 中使用蓝牙插件报错,说没有权限怎么解决

2、在build.grale里面更改一下版本号,我修改的是targetSdkVersion这个版本号,需要根据你自己的版本进行更改,记得更改之后先flutter clean一下再run。搞了一晚上,没搞出来,第二天用同事手机测试发现他手机可以,我手机还是不行,才发现是Android版本问题,需要修改两处地方。废话不多说,咱先看报错信息。

zzj17637822814的博客 2289

STM8库函数开发手册(3) //UART1、内部EEPROM、FLASH操作库、IIC(硬、软)

STM8S 微控制器家族的通用同步异步收发器(UART1,UART2 或者UART3)提供了一种灵活的方法与使用工业标准NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。STM8 的UART 提供范围的波特率选择,并且支持多处理器通讯。UART 也支持LIN(局部互联网)协议版本1.3,2.0,和2.1 以及在主模式下的J2602。 UART1 和UAR...

finedayforu的博客 2522

Redwood 全栈框架入门指南:React + GraphQL + Prisma 一体化开发体验与文档导航

Redwood 是一个面向"从 side project 成长到 startup"这一路径设计的全栈 Web 框架,它把 React、GraphQL、Prisma、TypeScript、Jest 与 Storybook 编织进一套端到端的开发工作流中。本文以官方 v3.x 文档 [introduction.md](https://link.gitcode.com/i/5bbc226327f8d2c

gitblog_01032的博客 888

华为od 面试八股文_Spring_03_含答案

控制反转IOC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:依赖注入和依赖查找依赖注入;

MISAYAONE的博客 2343

STF(Smartphone Test Farm)Changelog 技术解读:从版本演进看 Android 设备云平台的能力迭代

> 本文基于仓库根目录 [CHANGELOG.md](https://link.gitcode.com/i/e2ef881696d71ed20cb53641dd9e817a) 编写。STF(Smartphone Test Farm)是一个可以在浏览器中远程控制和管理 Android 设备的开源平台,其 [CHANGELOG.md](https://link.gitcode.com/i/e2ef88

gitblog_00958的博客 486

【数据集8】全球人口数据WorldPop详解

全球人口数据WorldPop详解

WW、forever的博客 7882

使用ArcGIS Pro进行土地利用分类的机器学习与深度学习

传统的土地利用分类方法通常依赖于手动解译和规则定义,但随着机器学习和深度学习的发展,我们现在可以利用这些技术来自动化和提高分类的精度。ArcGIS Pro是一种功能强大的GIS软件,它提供了丰富的工具和功能,可以支持土地利用分类的机器学习和深度学习。我们将首先讨论数据准备和预处理的步骤,然后介绍常用的机器学习和深度学习方法,并提供相应的源代码示例。这可以通过人工标注或半自动的方式完成。数据裁剪:根据研究区域的范围,裁剪遥感影像数据,以减少计算和存储的负担,并确保只包含感兴趣的土地利用区域。

code_program481的博客 2040

前端开发者如何用TypeScript/Node.js构建AI Agent:从原理到实践

AI Agent(智能体)是一种能够自主规划、调用工具并执行任务的高度自治程序单元,其核心原理基于大语言模型(LLM)的推理与决策能力。在技术实现上,Agent遵循“思考-行动-观察”的ReAct范式,通过状态管理、工具集成和异步流程控制来完成任务。对于前端开发者而言,这一技术价值在于能够利用现有的TypeScript/Node.js技能栈快速构建智能应用,无需转向Python生态。前端工程化中的模块化设计、API调用和异步处理等经验,恰好契合Agent开发所需的编排与集成能力。应用场景广泛,包括自动化客服

weixin_34246551的博客 434

[机器学习] 第二章 模型评估与选择 2.ROC:roc_curve原理及源代码详解

代码见:https://github.com/Carrie-Yi/machine_learning/tree/main/roc_curve

心宝的博客 1495

Notesnook 开源仓库全解析:端到端加密笔记应用的架构、加密体系与开发指南

Notesnook 是一个完全开源(GPL-3.0)、以用户隐私与易用性为核心的端到端加密笔记应用,致力于成为 Evernote 的隐私友好替代品。本仓库([README.md](https://link.gitcode.com/i/0eda86b9fe14a5f9ae9dfe6a312f7fea))收录了构建与使用 Notesnook Web、桌面端与移动端客户端所需的全部代码,本文以根目录 R

gitblog_00311的博客 352

【网络安全 | 渗透工具】Hydra安装使用详细教程

Hydra,也称九头蛇,是一款非常强大的暴力破解工具(密码能否被破解关键在于字典是否足够强大),支持多种服务协议的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。该工具支持以下协议的爆破:Hydra在kali中自带,这里介绍windows下的安装方法。zip下载地址:https://gitcode.com/maaaaz/thc-hydra-windows/tree/master下载完成后解压: 再将thc-hydra-windows-mast

等风来 9203

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Dism++空间回收完整指南:4步清理WinSxS组件,释放C盘深层空间

C盘只剩300MB,系统却提示无法保存文件。Dism++是免费开源的系统维护工具,基于微软CBS组件服务,支持空间回收、更新管理与离线镜像维护。按本文清理被取代的系统组件,可释放数GB空间。 ## 适不适合你 - **适用**:C盘空间不足、Windows Update反复失败,或要给离线系统镜像集成补丁,且不想重装系统。 - **不适用**:批量删除个人文档与程序文件。Dism++只处理系统

gitblog_00427的博客 1004

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

res-downloader实战完整指南:会员歌曲与网络资源一软保存

想在 QQ 音乐听到一首会员歌曲、离线留着反复听,或者把视频号里一段视频存到自己的设备上,常常卡在"怎么存下来"这一步。res-downloader 是一款基于 Go 开发的跨平台资源嗅探工具,你在浏览器里正常播放、刷页面的同时,它会悄悄拦截经过的音频、视频、图片资源,打上标签放进列表,你挑一条点下载就行。软件覆盖 Windows、macOS、Linux 三大系统,兼容 QQ音乐、酷狗、抖音、快手

gitblog_00148的博客 233

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SubQuery node-core 演进史:从链无关核心到通用 Web3 索引引擎的技术拆解

`@subql/node-core` 是 SubQuery 数据索引框架中**与区块链无关(chain-agnostic)**的核心节点包,它沉淀了区块调度、Worker 线程、POI 证明、未最终确定块处理、字典加速、存储缓存、多链回滚、Schema 迁移与测试框架等通用能力。本文以 [packages/node-core/CHANGELOG.md](https://link.gitcode.c

gitblog_07186的博客 435

【免登录下载】保研简历模板500份免费开源:三步挑好模板,快速完成保研简历

开源项目「保研个人简历模板(500份)」把 500 份保研简历模板打包成免费简历模板资源:基本信息、教育背景、项目经历、专业技能、荣誉奖励五大板块齐全,Markdown 与 LaTeX 两种格式,clone 下来替换内容就能用。 ## 保研简历最容易踩的坑 📌 第一次准备保研申请时,最常见的两个问题是: - **对着空白文档下不去手**。不知道放什么,就先把课程表、自我评价写满一页,真正该

gitblog_00764的博客 208

RedwoodJS CLI 命令完全参考:从项目脚手架到生产部署的实战指南

`redwood`(别名 `rw`)是 RedwoodJS 的核心命令行工具,覆盖应用开发的全生命周期:项目创建、代码生成、数据库迁移、构建部署、测试与升级。本文以 RedwoodJS v6 的官方 CLI 参考为骨架,结合仓库内 [packages/cli](https://link.gitcode.com/i/b7658d8521d8e238fb99d1ab452606fd) 的真实源码实现(

gitblog_00940的博客 491

【国际化新星】y18n - 简洁高效的多语言解决方案

【国际化新星】y18n - 简洁高效的多语言解决方案 在构建全球化的应用时,本地化和国际化(i18n)成为不可或缺的一环。今天,让我们一起来探索一款轻量级的国际化库——y18n,它凭借其简单易用的特性,在众多开发者中获得了高度评价。 项目介绍 y18n 是由 yargs 团队打造的一款国际化的基础工具库。它旨在提供一种简洁高效的方式来处理应用程序中的字符串翻译与复数形式支持,灵感来源于广为人知的 ...

gitblog_00030的博客 626
上一篇: React18原理: React核心对象之ReactElement对象和Fiber对象
下一篇: Gin框架: 快速搭建起一个Web应用环境及处理不同类型的响应
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Wang's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值