首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

一个有意思的命令行框架 `func`

  •  
  •   WittBulter · 179 天前 · 2023 次点击
    这是一个创建于 179 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    这是一个用于 NodeJS 的命令行框架,和 commander, args 所做的是同一件事,但有一些区别。

    • 更具有可读性的代码
    • 更容易抽象
    • 有配套脚手架,可一键开发命令行工具,打包等
    • 框架 gzip 之后约 4k,高性能

    细节

    我经常需要用 NodeJS 写一些命令行框架,每次都需要配置 tsconfig / lint / bin / bundle 等等,而且对于命令和参数也需要逐一判断,最后还需要自己抽象,这浪费了非常多的时间。然后我想能不能自己做一个更益于抽象和设计的命令行框架呢?于是就有了 func

    func 算是一个类 Ioc 框架,但由于本身出色的设计和对于开发者体验的追求,它保持了很高的开发体验同时也保证了包的大小与依赖,同时有相应的脚手架支撑,这可能是目前 NodeJS 开发命令行工具最优解决方案。

    项目的地址: func

    快速体验 npx cfunc init (cfuncfunc 的脚手架,但也是用其构建的,大家可以感受一下包的质量和速度,还有项目的易扩展性。)

    其他

    1. 这个项目已经投入了生产
    2. 对于我个人,我会把所有的项目都迁往 func,它真的很好用
    3. 项目不会堆砌 feature,因为它重视的是 开发者体验
    第 1 条附言  ·  178 天前

    更新:现在可以使用更加简介的初始化方式:npm init func

    7 回复  |  直到 2019-06-15 21:33:26 +08:00
        1
    ob   179 天前 via Android
    关注下
        2
    Constellation39   178 天前 via Android
    正好需要
        3
    devtiange   178 天前
    太复杂, 而且要求 ts, 还要用并没有稳定下来的 decrorator, 我选择继续用 cac.
    不过还是谢谢楼主分享.
        4
    WittBulter   178 天前
    @devtiange
    复杂度其实算比较低的,你可以看其中的 mini example 或者脚手架,基本可以快速上手。
    置于没有稳定下来这个事吧,stage-2 估计一直都不会变了,TS 实现这个当初就是为了 NG 的,目前还是有很多知名的库都用了这个特性:`routing-controllers` / `Angular` / `type-orm` 等等。
    (我估计很难成为正式提案,但会成为一个事实标准)
        5
    OrangeM21   178 天前 via iPhone
    marj
        6
    Lxxyx   178 天前 via iPhone
    mark,看起来不错
        7
    AvenirX   178 天前 via iPhone
    有没有用过 docopt ?把帮助文档写出来,自动就实现 parser 了
    http://docopt.org/
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4577 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 02:14 · PVG 10:14 · LAX 18:14 · JFK 21:14
    ♥ Do have faith in what you're doing.