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 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-evd

v1.0.8

Published

Egg+Vue+Docker scaffold initializer (npm create evd)

Readme

create-evd

Egg + Vue + Docker 脚手架初始化器(npm create evd)。

用法

  • 非交互:
    • npm create evd@latest my-app -- --dev-port 8080 --prod-port 8081 --version 1.0.0
  • 交互式:
    • npm create evd@latest 后根据提示填写应用名、端口、版本等

说明:支持将 appName 设为 '.',在当前目录生成脚手架。

参数说明

  • --dev-port <number>:开发环境宿主机端口,默认 8080
  • --prod-port <number>:生产环境宿主机端口,默认 8081
  • --version <string>:初始化版本号,默认 0.1.0(会写入生成项目的 VERSION 文件,同时在模板 README 中展示)
  • --mysql-platform <string>:MySQL 容器平台(例如:linux/arm64/v8,Apple Silicon 推荐设置)
  • --git:生成后初始化 git 仓库并提交初始代码
  • --force:目标目录非空时直接覆盖(否则会交互确认)

生成内容

  • 优先使用本包的内部模板目录 template/
  • 若不存在内部模板,则从当前仓库中复制必要路径(backend/frontend/nginx/docker-compose.*.ymlREADME.md),并执行名称、端口、容器/镜像名等替换。

占位符与替换

  • __APP_NAME__:应用名(用于容器名、镜像名等)
  • __DEV_PORT__:开发环境宿主机端口(Nginx 宿主机端口映射)
  • __PROD_PORT__:生产环境宿主机端口(Nginx 宿主机端口映射)
  • __APP_VERSION__:版本展示(模板 README 中的示例版本)

Nginx 在容器内统一监听 8080,宿主机的映射端口由 --dev-port/--prod-port 决定。

快速开始

生成项目后可按以下方式启动:

  • 开发环境:
    • docker compose -f docker-compose.dev.yml up -d
    • 访问:http://localhost:__DEV_PORT__
  • 生产环境:
    • docker compose -f docker-compose.prod.yml build
    • docker compose -f docker-compose.prod.yml up -d
    • 访问:http://localhost:__PROD_PORT__

常见问题

  • 端口占用:若 __DEV_PORT____PROD_PORT__ 已被占用,请在相应的 docker-compose.*.yml 中调整映射值,并在模板 README 指引下更新访问地址说明。
  • Apple Silicon:在 M 系列芯片上建议设置 --mysql-platform linux/arm64/v8,以避免 MySQL 镜像架构不兼容导致的启动问题。
  • 版本文件:生成项目根目录会写入 VERSION 文件,同时生产环境后端容器会挂载该文件到 /app/dist/VERSION
  • Node 版本:要求 Node >= 18

注意事项

  • 模板 README 会根据参数自动替换应用名、端口与版本示例;旧模板(若存在)中的固定端口或 demo- 前缀也会进行兼容性替换。
  • 使用 --git 可在生成后自动初始化仓库并提交一次初始代码;若执行失败会跳过且不影响脚手架生成。

GitHub 配置

  • CI 工作流:已在 .github/workflows/ci.yml 中配置,触发于 Push/PR,到 Node 18/20 上进行依赖安装与 TypeScript 构建。
  • NPM 发布:已在 .github/workflows/publish.yml 中配置,支持 workflow_dispatch 与推送 v*.*.* Tag 触发。需在仓库 Settings → Secrets and variables → Actions 添加 NPM_TOKEN 才能发布。
  • Dependabot:已在 .github/dependabot.yml 中启用,按周检查 npmgithub-actions 更新,并自动创建 PR。
  • Issue/PR 模板:位于 .github/ISSUE_TEMPLATE/*.github/pull_request_template.md,用于规范问题与变更描述。
  • CODEOWNERS:位于 .github/CODEOWNERS,请将 @your-github-username 替换为你的实际用户名或团队,便于审阅与保护分支策略。