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 🙏

© 2025 – Pkg Stats / Ryan Hefner

ecsc

v0.2.3

Published

ECS Commander

Downloads

20

Readme

ECSC (ECS Command-line Tool)

ECSC 是翼辉 ECS (Edge Container Stack) 的命令行工具,您可以使用它进行:

  • 创建容器 Bundle(文件夹)。
  • 打包容器 Bundle 并输出一个 OCI 容器镜像 tar 包。

开始

# install the package globally
npm install -g ecsc

# verify if the package has been installed
ecsc version

# print help document
ecsc help

工作流程

创建一个容器镜像,需要以下三个步骤:

  1. 创建一个容器 Bundle 目录。
  2. 将需要打包的文件拷贝到该 Bundle 目录内。
  3. 将 Bundle 目录打包为一个 tar 包。

1. 创建容器 Bundle

用户可以使用如下的命令创建一个空容器 Bundle:

ecsc create

以上命令将启动创建流程的交互。

  _____ ____ ____     ____                                          _       _ _              _____           _
 | ____/ ___/ ___|   / ___|___  _ __ ___  _ __ ___   __ _ _ __   __| |     | (_)_ __   ___  |_   _|__   ___ | |
 |  _|| |   \___ \  | |   / _ \| '_ ` _ \| '_ ` _ \ / _` | '_ \ / _` |_____| | | '_ \ / _ \   | |/ _ \ / _ \| |
 | |__| |___ ___) | | |__| (_) | | | | | | | | | | | (_| | | | | (_| |_____| | | | | |  __/   | | (_) | (_) | |
 |_____\____|____/   \____\___/|_| |_| |_|_| |_| |_|\__,_|_| |_|\__,_|     |_|_|_| |_|\___|   |_|\___/ \___/|_|
? What is the name of the bundle?

用户需要回答交互过程提到的如下问题:

  • Bundle 目录的名称。
  • 容器待运行的目标设备架构 (可选:x86-64, arm64, arm, mips64, ppc, loongarch)。
  • 该容器是否需要自动映射 JSRE 的运行环境 (将自动映射容器的 '/bin/javascript' 和 '/lib' 至宿主环境)。
  • 容器的启动参数。

举例,创建一个名为 demo 并运行在 x86-64 架构下的容器, 自动映射 JSRE 环境并设置启动参数为 javascript /apps/HelloVSOA.js:

? What is the name of the bundle? demo
? What is the architecture of the target device? x86-64
? Do you want to using the JSRE of the host? Yes
? What is the start argument of the image? javascript /apps/HelloVSOA.js
> create demo/config.json success!
> create demo/rootfs/apps success!
> create demo/rootfs/home success!
> create demo/rootfs/boot success!
> create demo/rootfs/qt success!
> create demo/rootfs/dev success!
> create demo/rootfs/lib success!
> create demo/rootfs/proc success!
> create demo/rootfs/root success!
> create demo/rootfs/tmp success!
> create demo/rootfs/sbin success!
> create demo/rootfs/usr success!
> create demo/rootfs/var success!
> create demo/rootfs/etc success!
> create demo/rootfs/etc/startup.sh success!

以上流程结束后,将会在当前的工作目录下生成容器的 Bundle 目录,并且将会自动生成 '/etc/startup.sh' 文件并在其中配置命令 'shstack 200000'。

以上 create 命令也支持命令行参数(适用于自动化脚本):

ecs create [options]  create bundle with options or start an interactive wizard. 

  -h | --help     print this help document
  -d directory    path to local OCI bundle directory to be created.
  -a arch         CPU architect to use, defaults to 'noarch' if not set, check
                  CPU Architect section for more information.
  -p args         container process (entrypoint) and its arguments.
  -j              if set, mount and use host JSRE files.
  -o              if set, overwrite exsiting bundle directory if exist.

CPU Architect
  noarch, x86-64, arm64, arm, riscv64, mips64, ppc, loongarch

Example
  ecs create -d ./demo -p '/bin/javascript /apps/demo.js'

拷贝文件

当前,用户需要手动将必要的文件拷贝到容器 Bundle 内。

打包容器 Bundle

用户使用如下的命令将容器 Bundle 打包为 tar 包。

ecsc  pack  tarballPath  bundle  name  tag
  • tarballPath 指定 tar 包的生成路径,其后缀必须为 '.tar'。
  • bundle 指定需要打包的容器 Bundle。
  • name 指定容器镜像包显示的名称(非容器镜像文件名)。
  • tag 指定容器的标签,如 latest

举例,将如上的 'demo' Bundle 打包为 demo.tar:

ecsc pack demo.tar demo x64_demo latest

以上命令执行后,将在当前工作目录中生成 demo.tar 容器镜像包。

注意:

除了通过上述 ecsc 交互的方式,还可通过 Ecsfile 工具进行镜像打包。具体使用请参考 Ecsfile 使用说明