Skip to content

提案:v3 #26

@Gaubee

Description

@Gaubee
  • 全局安装npm i -g @bfsystem/bfsp

  • 提供.bfsprc文件,用于提供给#bfsp.ts配套的“可读写配置”的功能

    某些指令需要持久化它的状态信息,但原本的 #bfsp.ts 文件是面向开发者的,因为需要运行的特性,是无法提前修改的。所以只能提供一个专门的 json/yml 格式的配置文件,用于可被程序修改

    • @bfsystem/bfsp-install 锁定依赖的版本号

      工作原理是:在 install-deps 的模式下,package.json 的依赖版本会被锁定。

      而在 upgrade-deps 的模式下,package.json 中的依赖会被改成 #bfsp.ts 配置中原有的用户配置的风格:^/*/~,然后执行yarn upgrade-interactive

    • @bfsystem/bfsp-npm-publish 编译成 npm 包的时候,自动更新版本号
    • v2 升级到 v3 的时候,只需要自动创建出.bfsprc这个文件,并为之注入当前bfsp的版本号
    • @bfsystem/bfsp-create 的时候,需要为当前项目的bfsp锁定版本号
  • @bfsp/compiler 由原来的bfsp dev迁移而来,只负责包含特定版本的 typescript、vite

    • 如果遇到由大量小项目,需要统一进行 bfsp 依赖升级的,建议充分里用#bfsp.ts的 typescript 的特性,通过 import 来管理项目的各种依赖
  • bfsp ./bfsp-workspace[.yaml]/[.json]

    • 启动多个 compiler,然后将 compiler 附加到自己的 tui 里进行输出渲染。
      • 它能合理调度当前设备的资源,对要进行编译的 bfsp 进行排队
      • 它能接收 bfsp 的变动通知,触发编译流
      • 不做统一监听,由 bfsp 项目独立监听(原理是 watchman 能做统一监听)
      • 各个 bfsp 的 dep-install 独立执行,不使用 yarn-workspaces
  • bfsp 支持插件定义二级指令

  • @bfsp/tui

    • tui 属于 bfsp 默认程序
    • statusbar 改装成 input,让用户可以输入指令
    • 默认注册了以下二级指令(这些指令是动态的,第一次执行才会进行安装,安装也是安装全局)
      • test 在编译成功之后能执行测试 vitest
      • run 可以执行配置在#bfsp.ts中的任务项
        • 支持--watch模式,效果同nodemon
      • npm 可以通过配置 userConfig.npm,进行独立的编译之后,输出到.bfsp/npm 文件夹中,用户可以进入这些文件夹进行 npm publish 操作

        --publish 直接执行 npm publish 操作

      • npm-upgrade 提供当前托管的项目的依赖进行建议升级

        --dry-run 直接预览升级的版本变动信息
        --suggest 提供升级建议,默认情况下是提供各项依赖的最新的版本 latest 信息。配合--dry-run可以看到版本变动 diff

    • 社区可以通过提供 bfsp-tui-xxx 来提供自定义二级指令
  • @bfsp/create 注册在 bfsp 下的二级指令 create 。提供 workspace 和 project 两种模式的项目构建

    • create[-project](default)
    • create[-workpsace]
    • create[-xx] (bfsp-create-xx) 开放给社区自定义 create 的二级指令
  • @bfsp/bin 从目前的 bfsp/bin 中抽离出来

  • @bfsp/test 从目前的 bfsp/test 中抽离出来

    它只包含如何定义测试,至于测试所需要的 runtime,由全局的工具 bfsp test 提供

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions