最近项目里用到了Shell,把踩过的坑和实际用法整理一下,方便自己也方便后来人。

安装

# 安装
curl -sSL https://install.example.com | sh
# 验证
which shell && shell --version

初始化项目

// 基本用法示例
const shell = require("shell");

// 初始化
const app = shell.create({
    debug: process.env.NODE_ENV !== "production",
});

// 核心操作
app.configure({
    timeout: 5000,
    retry: 3,
});

app.on("error", (err) => {
    console.error("出错了:", err.message);
});

app.start();

遇到的问题

  • 出了问题先看 GitHub Issues,可能已经有人踩过坑了
  • 生产环境记得开日志,不然出了问题两眼一黑
  • 先用官方 Quick Start 跑通,别一上来就看源码
  • 配置文件用版本控制管理,别在服务器上直接改

跑起来之后

之前选技术方案纠结了一周,后来直接用 Shell 做了个原型,两天跑通。发现有些设想的需求根本用不上,反而暴露了之前没考虑到的问题。先跑起来再优化,比空想强。

常见问题

Shell 环境装不上怎么办?

先确认系统版本和依赖是否满足。换源或者用 Docker 是最省事的办法。Docker 一行命令搞定环境问题,别跟自己过不去。

Shell 性能上不去?

先 profile 找瓶颈,别瞎优化。80% 的性能问题出在 20% 的代码里。数据库慢就加索引/缓存,网络慢就加连接池/CDN,计算慢就加并发/队列。

选 Shell 还是别的方案?

看场景。没有银弹。先想清楚需求:量级多大?团队什么背景?维护成本能接受多少?然后选最合适的,不是最流行的。

先写到这,后面有新发现再更新。觉得有用的话收藏一下。