[English](https://unpkg.com/scriptspect@0.1.2/README.md) | [简体中文](https://unpkg.com/scriptspect@0.1.2/README.zh-CN.md)

<p align="center"><img src="https://raw.githubusercontent.com/Tom409114/scriptspect/6f439bb974b297d5a334cebe989b4b50d7483677/docs/assets/brand/hero.svg" width="100%" alt="ScriptSpect 在 package scripts 运行前发现跨 shell 可移植性问题"></p>

> **Package 版本：** `scriptspect@0.1.2` · source `6f439bb974b297d5a334cebe989b4b50d7483677`

ScriptSpect 不运行 scripts，只对 `package.json` 做静态分析。它会精确指出在 POSIX shell、Windows cmd 与可选 PowerShell target 之间含义不同的结构。

## 30 秒开始

需要 Node.js 22 或更高版本。无需全局安装，直接运行这个准确版本：

```bash
npx --yes scriptspect@0.1.2 .
pnpm dlx scriptspect@0.1.2 .
```

存在 finding 时退出 `1`；clean scan 退出 `0`；无效输入、配置或 I/O 退出 `2`。应用经审查的修复前，请先使用 `--fix-dry-run`。

## 修复前、分析结果与修复后

```json
{"scripts":{"build":"NODE_ENV=production vite build","clean":"rm -rf dist"}}
```

![由版本化 demo fixture 生成的真实 ScriptSpect 输出](https://raw.githubusercontent.com/Tom409114/scriptspect/6f439bb974b297d5a334cebe989b4b50d7483677/docs/assets/demo/terminal.svg)

```diff
-"build": "NODE_ENV=production vite build"
-"clean": "rm -rf dist"
+"build": "cross-env NODE_ENV=production vite build"
+"clean": "rimraf dist"
```

这个 demo 只使用 fixture 已声明的 dependencies。歧义修改始终保持 manual；ScriptSpect 不会安装 dependencies，也不会改写 lockfile。

## GitHub Actions

```yaml
- uses: Tom409114/scriptspect@v0.1.2
  with:
    path: .
```

若要获得最严格的供应链固定，请把 `v0.1.2` 替换为 `6f439bb974b297d5a334cebe989b4b50d7483677`。

[规则列表](https://github.com/Tom409114/scriptspect/tree/6f439bb974b297d5a334cebe989b4b50d7483677/docs/rules) · [配置 Schema](https://github.com/Tom409114/scriptspect/blob/6f439bb974b297d5a334cebe989b4b50d7483677/schema/config.schema.json) · [报告漏洞](https://github.com/Tom409114/scriptspect/security/advisories/new) · [源码](https://github.com/Tom409114/scriptspect/tree/6f439bb974b297d5a334cebe989b4b50d7483677)
