npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bfchain/pkgm-bfsp

v2.8.0

Published

使用 `bfsp init <pkgName>` 快速初始化一个项目,项目创建完成之后,会生成如下目录结构

Downloads

36

Readme

BFSP

快速开始

使用 bfsp init <pkgName> 快速初始化一个项目,项目创建完成之后,会生成如下目录结构

  • pkgName // 工作空间目录,请勿在这个文件夹直接创建#bfsp.ts(若要创建,请新建目录)
    • pkgName // 包目录
    • ...

然后根据提示,cd pkgName,执行 bfsp dev 就可以启动开发, 执行bfsp build执行多平台编译

启动后的面板,可通过对应的数字按键切换面板显示,也可以通过左右导航键进行切换

依赖管理

bfsp 支持依赖管理,可以在 #bfsp.ts里的 packageJson.deps字段下添加依赖项,格式同 package.json

...
"packageJson":{
  "deps":{
    "@bfchain/util-encoding-utf8":"^0.0.1-alpha.4"
  }
}

保存会自动安装对应依赖

Why BFSP

  1. 减少配置
  2. 提供一套 typescript 最佳实践
  3. 开发者无需关心 tsc/rollup/esbuild 等 ts-to-js 工具生态,而是将 typescript 作为直接的可执行语言来看待。
  4. 支持多平台模式,从而支持编译出 nodejs、browser 等平台的代码
  5. 未来将加入对其它语言的互通支持,通过 ?2Js/Wasm

Roadmap

多项目模式目前还处于提案状态,相关的开发在 bfsp v3 才会正式开始。 当前 v2 专注于单项目的打包与开发,如果需要多项目,可以作为monorepo模式下的pacakges/*文件夹进行开发

  • [x] typings 文件夹下的.ts文件, 以及任意文件夹下的.type.ts文件,都会全部被包含到 prod 项目中的 typings 文件夹下
  • [x] bin 文件夹下, .bin.ts 后缀的文件自动变成出口文件,用于输出 package.json 的 bin 指令
    • [ ] 可以通过 bfsp exe/bin {projectName} {binName} 来执行项目指令,可以缩写成bfsx {projectName} {binName}

      {projectName}如果是.开头,那么就使用对应的文件夹作为{projectName}无需通过npm仓库或者pkgm仓库安装对应的模块

  • [x] tests 文件夹下,.test.ts后缀的文件自动变成出口文件,用于输出测试用的可执行文件,但不会跟着被发布出去
  • [x] bin/dev 需要启动以下作业:
    • [x] 监听更新 typescript 相关的配置文件与自动生成的代码
  • [x] 将 bin 输出到 package.json
  • [x] 提供#{Profile}模式
    • [x] 将 Profiles 写入到 tsConfig 的 paths 属性中
    • [x] vite 编译阶段使用 tsConfig 的 paths 配置进行文件选择
  • [x] 提供 test 指令

    前期使用 ava 来作为测试功能的后端,只需要启动 ava/cli 即可

    • [ ] 支持?选择器,比如输入 bfsp test ?,那么进入交互界面,用于选择特定的测试,执行并打印改指令,用于下一次快速执行
  • [ ] 提供 fmt 指令

    提供默认的.prettierrc 文件

  • [ ] 为 dev 模式提供 cmd 面板
    • [ ] 可以快速输入一些内置的指令与提示
      • [ ] test 提示测试模块的名字
      • [ ] fmt 提供格式化模式:diff/all;文件类型的提示:.ts/.json/.html 等
  • [ ] 为 dev 模式提供 test 面板
    • [x] 在新的线程中运行 test 指令,并将其 stdout/err 输出转储到 logger 面板
  • [x] 提供 build 指令

    bfsp 的 build 指令,本质是输出 bfchain-system 所需的可执行文件 但开发者可以提供自定义profiles,来做个性化编译,从而输出到 nodejs、browser 平台。

  • [ ] 提供 npm 指令

    有三种子指令:publish/pack

    • [ ] 默认是publish,其行为与learn publish一致,需要 git 完全提交完毕,而后会根据变动信息,自动变更版本号。
    • [ ] pack指令是在.npm文件夹下打包出.tgz文件。如果有子项目,也会一并导出多个.tgz
  • [x] 多项目模式

    使用 yarn 支持 workspace 依赖 那么将子项目的 tsconfig.json 文件一并合并进项目中做 tsc 子项目同时启动 bundle,同步编译 子项目会被排除出当前项目之外,只使用项目名称来进行引用

  • [ ] 自举:bfsp 项目自身使用 bfsp 进行编译