# @alessiofrittoli/node-scripts 中文文档

规范地址：https://npmcn.com/package/%40alessiofrittoli/node-scripts/

版本：4\.2\.0
npm 元数据更新时间：2026-10-24T13:57:35.084Z
中文译文更新时间：2026-11-06T09:12:03.161Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40alessiofrittoli/node-scripts
原文对照：https://npmcn.com/package/%40alessiofrittoli/node-scripts/?lang=original
项目主页：https://github.com/alessiofrittoli/node-scripts#readme
源码仓库：https://github.com/alessiofrittoli/node-scripts

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：77.1 kB，25 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.15\.0
- 运行依赖：0 个
- peer 依赖：@alessiofrittoli/tsconfig ^1\.0\.0，@alessiofrittoli/typed-map ^1\.0\.0
- 首次发布：2024-12-24T18:26:31.146Z
- 最新版本发布：2026-10-24T13:57:34.938Z
- 近 30 天下载量：3644（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 11 个）

## 中文简介

具有常见节点.js脚本的用户库

## 安装

```sh
npm install @alessiofrittoli/node-scripts
```

也可以使用：`pnpm add @alessiofrittoli/node-scripts`、`yarn add @alessiofrittoli/node-scripts`、`bun add @alessiofrittoli/node-scripts`

## README

# 节点.js 脚本

## 具有常见节点.js脚本的用户库

 [![Latest version](https://img.shields.io/npm/v/@alessiofrittoli/node-scripts)](https://npmjs.org/package/@alessiofrittoli/node-scripts)[![Test coverage](https://coveralls.io/repos/github/alessiofrittoli/node-scripts/badge.svg) ](https://coveralls.io/github/alessiofrittoli/node-scripts)[![Socket Security score](https://socket.dev/api/badge/npm/package/@alessiofrittoli/node-scripts) ](https://socket.dev/npm/package/@alessiofrittoli/node-scripts/overview)[![npm downloads](https://img.shields.io/npm/dm/@alessiofrittoli/node-scripts.svg) ](https://npmjs.org/package/@alessiofrittoli/node-scripts)[![Dependencies](https://badgen.net/bundlephobia/dependency-count/@alessiofrittoli/node-scripts) ](https://bundlephobia.com/package/@alessiofrittoli/node-scripts)[![Dependencies status](https://img.shields.io/librariesio/release/npm/@alessiofrittoli/node-scripts)](https://libraries.io/npm/%40alessiofrittoli%2Fnode-scripts)

 [![minified](https://badgen.net/bundlephobia/min/@alessiofrittoli/node-scripts)](https://bundlephobia.com/package/@alessiofrittoli/node-scripts)[![minizipped](https://badgen.net/bundlephobia/minzip/@alessiofrittoli/node-scripts) ](https://bundlephobia.com/package/@alessiofrittoli/node-scripts)[![Tree shakable](https://badgen.net/bundlephobia/tree-shaking/@alessiofrittoli/node-scripts)](https://bundlephobia.com/package/@alessiofrittoli/node-scripts)

[![Fund this package](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

### 目录

-   [开始](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-getting-started)
-   [发展](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-development)
    -   [地方发展](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-local-development)
    -   [生产建设](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-production-build)
    -   [单位测试](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-unit-tests)
        -   [进行覆盖测试](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-run-tests-with-coverage)
    -   [捐款](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-contributing)
    -   [警卫](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-security)
-   [API 参考](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-api-reference)
    -   [安装后脚本](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-post-install-scripts)
        -   [类型脚本类型参考管理](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-typescript-type-reference-management)
            -   [类型参考接口](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-type-reference-interfaces)
                -   [`CommonOptions`](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-commonoptions)
                -   [`AddTypesReferenceOptions`](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-addtypesreferenceoptions)
            -   [类型引用函数](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-type-reference-functions)
                -   [`createReferenceFile`](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-createreferencefile)
                -   [`updateTsConfig`](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-updatetsconfig)
                -   [`addTypesReference`](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-addtypesreference)
    -   [释放脚本](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-release-scripts)
        -   [释放](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-release)
-   [贷项](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-made-with-)

* * *

### 开始

运行以下命令开始使用 `node-scripts` 在您的项目中:

```bash
npm i @alessiofrittoli/node-scripts
```

或使用 `pnpm`

```bash
pnpm i @alessiofrittoli/node-scripts
```

* * *

### 发展

运行以下开始开发

```shell
nvm use

pnpm i
```

#### 地方发展

运行以下

```shell
pnpm dev
```

这将生成未忽略的输出代码, 源图并启用源文件监视器 .

* * *

#### 生产建设

运行以下来创建本地生产建筑

```shell
pnpm build
```

这将生成没有源代码的已修改输出代码 .

* * *

#### 单位测试

通过运行下列程序运行所有定义的测试套件 :

```shell
# Run tests and watch file changes.
pnpm test:watch

# Run tests in a CI environment.
pnpm test:ci
```

* * *

##### 进行覆盖测试

然后开始使用 HTTP 服务器服务覆盖文件 `./coverage` 文件夹.

您可以在您第一次运行此命令时看到空白页 。 只需刷新浏览器即可看到更新 .

```shell
pnpm test:coverage:serve
```

* * *

#### 捐款

献礼真受欢迎!

请参看 [贡献文件](https://npmcn.com/package/%40alessiofrittoli/node-scripts/CONTRIBUTING.md) 了解如何开始为该项目作出贡献的更多信息.

帮助更新此项目 [GitHub 赞助商](https://github.com/sponsors/alessiofrittoli)。 。 。 .

[![GitHub Sponsor](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

* * *

#### 警卫

如果你认为你发现了安全漏洞 我们鼓励你 **_负责地披露此事,不公开问题_**我们将调查所有合法的报告。 电子邮件 `security@alessiofrittoli.it` 披露任何安全弱点.

* * *

### API 参考

#### 安装后脚本

##### 类型脚本类型参考管理

这个 `addTypesReference` 函数允许您创建和管理 TypeScript 参考文件并更新相关的 `tsconfig.json` 用于安装您节点模块的项目的文件.

以下详细描述包含的接口和功能.

###### 类型参考接口

###### `CommonOptions`

属性

| 财产 | 类型 | 说明 |
| --- | --- | --- |
| `root` | `string` | 安装您节点模块的项目的根目录 . |
| `name` | `string` | 您的节点模块的名称 . |
| `outputFile` | `string` | 输出文件名 . |

* * *

###### `AddTypesReferenceOptions`

属性

| 财产 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `name` | `string` | \- 说吧 | 项目名称目前执行脚本 . |
| `scopes` | `string[]` | \- 说吧 | 包上使用的一系列范围参考 `name`。 。 。 . |
| `outputFile` | `string` | "全球之声" | \*.d.ts输出文件名. |

* * *

###### 类型引用函数

###### `createReferenceFile`

创建或更新带有项目类型定义的参考文件.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `options` | `CommonOptions` | 引用文件创建的常见选项 . |

-   见 [常见选项](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-commonoptions) 接口.

* * *

掷出

`Error` - 如果出现创建或更新文件的问题,则丢出错误.

* * *

###### `updateTsConfig`

更新 tsconfig.json 文件,将指定的输出文件添加到 `include` 阵列.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `options` | `CommonOptions` | 引用文件创建的常见选项 . |

-   见 [常见选项](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-commonoptions) 接口.

* * *

掷出

-   `Error` - 如果 tsconfig.json 文件无法读取或更新,则丢出错误 .

* * *

###### `addTypesReference`

添加 TypeScript 参考文件并更新 tsconfig.json 用于工程安装您的节点模块.

如果 `options.outputFile` 如果其中没有新的软件包参考,则将更新该软件包.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `options` | `AddTypesReferenceOptions` | 添加类型参考的选项 . |

-   见 [添加类型参考选项](https://npmcn.com/package/%40alessiofrittoli/node-scripts/#readme-addtypesreferenceoptions) 接口.

* * *

错误

以代码退出进程 `1` 失败.

* * *

添加类型参考示例使用

添加数据 `postinstall` 您的脚本 `package.json` 一旦您的软件包安装在外部工程中, 文件将会执行脚本 .

```json
{
  // ...
  "files": [
    // ...,
    "my-scripts" // ensure folder is published to `npm`
  ],
  "scripts": {
    // ...
    "postinstall": "node my-scripts/ts-setup.ts"
  }
}
```

在你身边 `ts-setup.ts` 文件仅导入脚本并附带几个选项执行.

```ts
// my-scripts/ts-setup.ts
import { addTypesReference } from '@alessiofrittoli/node-scripts/postinstall'
import packageJson from '../package.json'

addTypesReference({
  name: packageJson.name,
  outputFile: `${packageJson.name}.d.ts`, // optional
})
```

或者你可以静地通过一个 `outputFile` 以添加您的全部范围包.

```ts
// my-scripts/ts-setup.ts
import { addTypesReference } from '@alessiofrittoli/node-scripts/postinstall'
import packageJson from '../package.json'

addTypesReference({
  name: packageJson.name,
  outputFile: 'my-package-scope-env.d.ts',
})
```

* * *

添加自定义类型引用

```ts
// my-scripts/ts-setup.ts
import { addTypesReference } from '@alessiofrittoli/node-scripts/postinstall'
import packageJson from '../package.json'

addTypesReference({
  name: packageJson.name,
  types: [`${packageJson.name}/globals`, `${packageJson.name}/globals-2`],
  outputFile: `${packageJson.name}.d.ts`, // optional
})
```

* * *

#### 发布脚本

##### `release`

这个 `release` 函数将构建、标记和可选释放工程到 npm 的过程自动化.

此函数要么工作于进程选项(通过CLI),要么工作于函数参数(功能参数优先于进程选项).

参数

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `version` | `string` | `--version` 进程选项或软件包。json. | 要发布的版本. |
|  |  |  | 从 `--version` 进程选项或 package.json 如果省略. |
| `build` | `string` | 建设 | 自定义构建命令, 可以在发布前构建您的工程 . |
|  |  |  | 从 `--build` 进程选项或返回到 `build` 如果省略,则删除. |
| `verbose` | `boolean` | 虚假 | 启用详细日志 . |
|  |  |  | 从 `--verbose` 进程选项或返回到 `false` 如果省略,则删除. |
| `origin` | `string` | 原产地 | 用于推进版本标记的 Git 源名称 . |
|  |  |  | 从 `--origin` 或者说 `--o` 进程选项或返回到 `origin` 如果省略,则删除. |
| `npm` | `boolean` | 虚假 | 表示是否将软件包发布到 npm . |
|  |  |  | 从 `--npm` 进程选项或返回到 `false` 如果省略,则删除. |
| `access` | `public|restricted` | "公开" | 设置 npm 包访问级别 . |
|  |  |  | 从 `--access` 进程选项或返回到 `public` 如果省略,则删除. |

* * *

进程选项 - CLI

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--version` | `string` | 来自 package.json 的值 | 要发布的版本. 从 package.json 中获取如果省略 . |
|  |  |  | 从 package.json 中获取如果省略 . |
| `--build` | `string` | `build` | 自定义构建命令, 可以在发布前构建您的工程 . |
| `--verbose` | `boolean` | `false` | 启用详细日志 . |
| `--origin`, (中文(简体) ), `-o` | `string` | 原产地 | 用于推进版本标记的 Git 源名称 . |
| `--npm` | `boolean` | `false` | 表示是否将软件包发布到 npm . |
| `--access` | `public|restricted` | "公开" | 设置 npm 包访问级别 . |

* * *

已执行的步骤

1.  获取软件包
    -   试图加载和解析 `package.json` 文档.
    -   如果文件不可用或无效,则以代码"1"退出进程.
    -   获取该版本, 如无则用作倒置 `--version` 选项已提供.
2.  解析选项 :
    -   使用 `getProcessOptions()`。 。 。 .
    -   验证关键参数,例如: `version` 财务报告和审定财务报表 `access`。 。 。 .
3.  准备 Git 并构建 :
    -   将任何未承诺的更改与藏名相提并论(`pre-release`) (中文(简体) ).
    -   执行 `npm run build` 或者说 `pnpm build` 命令( 如果 `pnpm` (全球安装).
    -   创建 Git 标记为 `v{version}`
    -   按下指定的 Git 标记 `origin` 或到默认的 Git 仓库远程 .
4.  发布到 npm( 可选) :
    -   使用 `npm publish` 若为 `--npm` 已设置了旗帜.
5.  恢复 Stash :
    -   恢复在此过程中保存的隐藏更改 .
6.  读取日志 :
    -   如果 `--verbose` 已设置了旗帜.

* * *

示例用途

###### 使用函数参数

添加数据 `release` 您的脚本 `package.json` 文件可以方便地从终端运行.

```json
{
  // ...
  "scripts": {
    // ...
    "release": "node my-scripts/release.ts"
  }
}
```

在你身边 `release.ts` 文件仅导入脚本并执行.

QQ 记得将此文件添加到 `.npmignore` 所以不会在你包里发表.

```ts
// my-scripts/release.ts
import { release } from '@alessiofrittoli/node-scripts/release'

release({
  verbose: true,
  npm: true,
  access: 'restricted',
})
```

* * *

###### 使用 CLI 选项

添加数据 `release` 您的脚本 `package.json` 文件可以方便地从终端运行.

```json
{
  // ...
  "scripts": {
    // ...
    "release": "node my-scripts/release.ts --verbose --npm --access restricted"
  }
}
```

在你身边 `release.ts` 文件仅导入脚本并执行.

QQ 记得将此文件添加到 `.npmignore` 所以不会在你包里发表.

```ts
// my-scripts/release.ts
import { release } from '@alessiofrittoli/node-scripts/release'

release()
```

* * *

### 由 所制

<table><tbody><tr><td><img alt="avatar" src="https://avatars.githubusercontent.com/u/35973186" loading="lazy" decoding="async" referrerpolicy="no-referrer"></td><td><table><tbody><tr><td><a href="https://github.com/alessiofrittoli" rel="nofollow noopener noreferrer">阿莱西奥·弗里托利</a></td></tr><tr><td><small><a href="https://alessiofrittoli.it/" rel="nofollow noopener noreferrer">https://alessiofrittoli.it (英语)</a> | <a href="mailto:info@alessiofrittoli.it" rel="nofollow noopener noreferrer">(原始内容存档于2018-10-21) (英语). info.it</a></small></td></tr></tbody></table></td></tr></tbody></table>

## 常见问题

### @alessiofrittoli/node-scripts 是什么？

具有常见节点\.js脚本的用户库

### 如何安装 @alessiofrittoli/node-scripts？

在项目目录运行 npm install @alessiofrittoli/node-scripts，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@alessiofrittoli/tsconfig（^1\.0\.0）、@alessiofrittoli/typed-map（^1\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @alessiofrittoli/node-scripts 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @alessiofrittoli/node-scripts 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @alessiofrittoli/node-scripts 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.15\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @alessiofrittoli/node-scripts 可以商用吗？

@alessiofrittoli/node-scripts 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @alessiofrittoli/node-scripts 的下载量有多少？

根据 npm 官方下载统计，@alessiofrittoli/node-scripts 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,644 次，日均约 121 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @alessiofrittoli/node-scripts 还在维护吗？

最新版本 4\.2\.0 发布于 2026/10/24（14 天前）；至今共发布 33 个版本，其中过去 12 个月发布了 11 个；首次发布于 2024/12/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

