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

software-cli

v1.0.20

Published

大前端工程化一站式集成解决方案,主要围绕架构、性能、安全、体验、效率、质量六个方面提供支持,基于node生态实现工具自动化、规范化、标准化。

Downloads

93

Readme

Software-CLI

简介

Software-CLI 是前端工程化体系解决方案,旨在提高软件研发开发、测试、部署、运维四个阶段自动化程度,基于 NodeJS 命令行工具,提供一些列功能支持。内置命令和 API 支持自定义扩展 CLI 功能。

当前支持内容查阅版本说明,下个版本发布内容请留意预发布功能

功能

Software-CLI 功能规划:

  1. 技术支持多端化
    1. WEB: React/Vue
    2. Mobile: 微信小程序/Flutter
    3. PC: Electron
    4. Server: NodeJS/Python
    5. Plugins: ChromeExtension/BabelPlugin/ESLintPlugin/VSCodeExtension
  2. 开发流程标准化
    1. 集成 GIT 提交
    2. 提供开发流程文档
  3. 开发规范强制化
    1. 提供 ESLint 插件
    2. 提供 GitHook
  4. 项目架构模板化
    1. 项目框架模板化: 提供命令快速创建项目
    2. 项目页面模板化: 提供命令快速创建页面
    3. 项目配置自动化: 项目中重复且固定的操作进行自动化适配填充
  5. 功能测试自动化 基于 Nightwatch 框架提供更便利的 API 及功能
  6. 单元测试自动化 基于 Jest 框架提供更便利的 API 及功能
  7. 代码混淆自动化 基于 AST 技术,提供便利的 API
  8. 异常监控自动化 基于浏览器端 JS 事件监听器,提供页面、服务异常监控及业务数据埋点 API
  9. 性能分析自动化 基于浏览器插件技术,提供全面的性能分析服务
  10. 通用组件支持
    1. 音视频播放器组件,基于 video.js 兼容多种视频格式
    2. 大文件传输组件,实现高可配的文件断点、分片、前端自动记忆进度功能
    3. 浏览器数据库 API,基于 IndexedDB 技术的便利 API
  11. 通用服务支持
    1. 音视频高性能服务,基于 FFmpeg 技术实现服务器推流服务

Software-CLI 本身最大程度做到 CLI 与技术栈分离,尽可能将功能实现放到 CLI 依赖包中实现,便于长期维护升级。

Software-CLI 升级分为 CLI 自身升级和 CLI 功能依赖包升级,Software-CLI 每次运行完命令后自动检测升级,优先升级 CLI 自身,若 CLI 本身无更新则再去检测更新 CLI 功能包。

使用指南

安装

Windows: npm i -g software-cli

MacOS/Ubuntu:sudo npm i -g software-cli

运行命令

Usage: sw [command]

例如运行帮助命令,sw --h

命令说明

  1. --h: 帮助信息,显示全部可用命令
  2. cmd create: 用于创建新命令,来扩展 Software-CLI 功能
  3. cmd delete: 用于删除 Software-CLI 中扩展的命令
  4. add project: 扩展功能,用于创建项目
  5. obscure: 扩展功能,用于混淆和压缩代码(nodeJS、JavaScript),可混淆压缩一个目录下所有的 JS
  6. add player: 添加播放器组件和视频转码 API(支持 NPM 安装或源代码复制)

组件文档地址

software-template

software-player

software-dev-server

开发指南

  1. 下载源代码,https://github.com/GangDevp/software-cli
  2. 安装依赖包,npm i
  3. 与操作系统建立软连接,npm link
  4. 添加新的命令,sw cmd create
  5. 测试新的命令,开发工具以 debug 模式运行 package.json 中的 scripts,即自己需要测试的命令
  6. 代码加断点测试,在需要加断点的地方加入“debugger”即可,启动 debug 模式后自动停留在断点处

Software-CLI-Core API

Software-CLI 运行流程的核心及基础 API。

引用方式:,

const { Base, Wait, CLI, ChildProcess } = require('software-cli-core');

ChildProcess.cmd.cmdExecute(cmd, dir, false);

Base

CLI 全局对象

  • Base.state: CLI 运行状态下用户自定义的状态属性
  • Base.extends: CLI 运行的流程及运行时外部传入的函数

Wait

CLI 等待队列,可设置优先级(延迟队列)

  • Wait.enqueue: 进入等待队列,可设置参数在运行前进入延迟队列
  • Wait.next: 通知队列中的下一个任务,可设置参数在运行时进入延迟队列

CLI

CLI 命令行相关的 API,通常用于控制台显示,如打印日志、动画加载、命令行交互提问

  • CLI.log: 访问日志打印 API
  • CLI.loading: 访问控制台动画 API
  • CLI.addQuestions: 访问控制台命令交互添加提问 API

Subscribe

通过 channel 订阅消息

Publish

通过 channel 发布消息

Software-CLI-API API

使用频率较高的 API 封装,如常用的 I/O 操作、子进程并行相关等

  • API.childProcess : 访问执行子进程任务相关的 API
  • API.data: 访问处理数据相关,如数组去重、排序、获取变量数据类型
  • API.date: 日期格式化处理
  • API.fs: 访问文件访问操作相关 API
  • API.git : 访问 Git 常用命令相关 API
  • API.packages : 访问检测 NPM 依赖包升级相关 API
  • API.request : 访问 http 请求相关 API
  • API.event : 访问 node EventEmitter 对象的所有方法

版本说明

  1. 1.0.14

    [✓]支持命令创建自定义扩展的命令;

    [✓]支持命令删除自定义扩展的命令;

    [✓]支持命令创建项目(js/react/electron);

    [✓]支持命令混淆 JS 多个文件;

  2. 1.0.16

    [✓]支持命令添加媒体播放器组件;

预发布功能

  1. [✓] 音视频播放组件和服务: add player 命令支持
  2. [] 小程序容器支持