# @appshell/config 中文文档

规范地址：https://npmcn.com/package/%40appshell/config/

版本：1\.0\.0-alpha\.148
npm 元数据更新时间：2026-10-29T16:06:00.518Z
中文译文更新时间：2026-11-06T12:32:38.169Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：927 kB，30 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2023-03-04T13:21:13.898Z
- 最新版本发布：2026-10-29T16:06:00.118Z
- 近 30 天下载量：5601（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：218（近 12 个月 141 个）

## 中文简介

为模块February微前端制作全球应用程序清单的工具

## 安装

```sh
npm install @appshell/config
```

也可以使用：`pnpm add @appshell/config`、`yarn add @appshell/config`、`bun add @appshell/config`

## README

[![appshell](https://github.com/navaris/appshell/blob/main/assets/branding/appshell-logo_2x.png)](https://github.com/navaris/appshell)

[![Appshell CI](https://github.com/navaris/appshell/actions/workflows/pipeline.yml/badge.svg)](https://github.com/navaris/appshell/actions/workflows/pipeline.yml)

# @ appshell/ 配置

Utitliy为与Appshell和Webpack Module Federation一起构建微前端而生成appshell配置.

工作实例可见于此 [这里](https://github.com/navaris/appshell/tree/main/examples)。 。 。 .

**说明: 这个软件包不再出版,建议使用 [@ appshell/ cli (英语)](https://www.npmjs.com/package/@appshell/cli) 换句话说.**

## 开始

开始,你需要安装 `@appshell/config`数字 :

```console
npm install @appshell/config --save-dev
```

或者说

```console
yarn add -D @appshell/config
```

或者说

```console
pnpm add -D @appshell/config
```

## 职能

`@appshell/config` 是创建 CLI 的库。 大部分都可以通过 `appshell` 命令;脚本构建时直接到达软件包.

| 导出 | 目的 | CLI 等价单位 |
| --- | --- | --- |
| `generateManifest` | 模板 — 显示, 正在扩展 `${VAR}` | `appshell generate manifest` |
| `publish` | 以软件包版本发布运单 | `appshell publish` |
| `activate` | 激活一个版本为应用程序 | `appshell publish --application` |
| `outdated` | 将共享依赖性与基线相比较 | `appshell outdated` |
| `sync` | 在宣布的版本中安装共享依赖 | —— 说 |
| `resolveContext` 编号 : `persistedContext` | 登记、申请和象征性事项,随着国家领导才能的解决而解决 | `appshell config list` |
| `resolveToken` 编号 : `saveCredential` 编号 : `clearCredential` 编号 : `credentialsPath` | 每个登记册存储的证书 | `appshell login` 编号 : `logout` |
| `configmap` | `${VAR}` 占位符扩展 | —— 说 |
| `utils` | 文件加载、比较和格式化帮助 | —— 说 |
| `validators` | `AppshellTemplateValidator` | —— 说 |

### `generateManifest`

将一个显示模板处理成一个 appshell 显示器, 正在扩展 `${VAR}` 当前环境中的占位符.

```ts
import { generateManifest } from '@appshell/config';

const manifest = await generateManifest<MyMetadata>('dist/appshell.template.json');
```

**模板从何而来?**

> 每个微前端配置 [@appshell/webpack-plugin (英语)](https://www.npmjs.com/package/@appshell/webpack-plugin) 发射 `appshell.template.json` 在建设时间。 这个函数将它转换成显示器,并发布一个软件包版本.

样本模板 :

```json
{
  "remotes": {
    "CraModule/App": {
      "url": "${CRA_MFE_URL}",
      "metadata": {
        "route": "/cra",
        "displayName": "Example App",
        "displayGroup": "${CRA_MFE_DISPLAY_GROUP}",
        "order": 10,
        "icon": "ViewList"
      },
      "id": "3eb81a0c"
    }
  },
  "module": {
    "exposes": {
      "./App": "./src/App"
    },
    "filename": "remoteEntry.js",
    "name": "CraModule",
    "shared": {
      "react": {
        "singleton": true,
        "requiredVersion": "^18.2.0"
      },
      "react-dom": {
        "singleton": true,
        "requiredVersion": "^18.2.0"
      }
    }
  },
  "vars": {
    "RUNTIME_ARG_1": "${RUNTIME_ARG_1}",
    "RUNTIME_ARG_2": "${RUNTIME_ARG_2}"
  }
}
```

**我的运行时间环境如何在全球应用软件中反映出来?**

> 注意变量扩展语法 `${CRA_MFE_URL}`时 `generateManifest` 被叫做实际运行时环境值被注入,并释放出一个appshell表.

> **说明** 页:1 `vars` 定义运行时配置值 `getVars()` 从 [`@appshell/runtime/vars`](https://npmcn.com/package/%40appshell/runtime/README.md) 一旦装入。 软件包必须共享 `@appshell/runtime` 作为接收他们的单子 见一用例.

应用壳样品清单 `generateManifest` 函数 :

```json
{
  "remotes": {
    "CraModule/App": {
      "id": "3eb81a0c",
      "url": "http://localhost:3001/remoteEntry.js",
      "scope": "CraModule",
      "module": "./App",
      "metadata": {
        "route": "/cra",
        "displayName": "Example App",
        "displayGroup": "primary",
        "order": 10,
        "icon": "ViewList"
      }
    },
    "VanillaModule/Vanilla": {
      "id": "8232ce86",
      "url": "http://localhost:3002/remoteEntry.js",
      "scope": "VanillaModule",
      "module": "./Vanilla",
      "metadata": {
        "route": "/vanilla",
        "displayName": "Example React App",
        "displayGroup": "primary",
        "order": 10,
        "icon": "ViewList"
      }
    }
  },
  "modules": {
    "Appshell": {
      "name": "Appshell",
      "shared": {
        "react": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        },
        "react-dom": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        }
      }
    },
    "CraModule": {
      "exposes": {
        "./App": "./src/App"
      },
      "filename": "remoteEntry.js",
      "name": "CraModule",
      "shared": {
        "react": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        },
        "react-dom": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        }
      }
    },
    "VanillaModule": {
      "exposes": {
        "./Vanilla": "./src/App"
      },
      "filename": "remoteEntry.js",
      "name": "VanillaModule",
      "shared": {
        "react": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        },
        "react-dom": {
          "singleton": true,
          "requiredVersion": "^18.2.0"
        }
      }
    }
  },
  "vars": {
    "CraModule": {
      "RUNTIME_ARG_1": "Foo",
      "RUNTIME_ARG_2": "Biz"
    },
    "VanillaModule": {
      "RUNTIME_ARG_1": "Bar"
    }
  }
}
```

这个清单是 `publish` 作为软件包版本发送到注册处。 登记册的组成 每一个进入有效载荷的活化包 都服务于外壳.

**如果我想用一个启动脚本来生成清单呢?**

> 这个功能被 [@ appshell/ cli (英语)](https://www.npmjs.com/package/@appshell/cli) 软件包。 你可以直接打电话 `appshell generate manifest --template /path/to/appshell.template.json` 以生成启动时的运行时间表.

## 常见问题

### @appshell/config 是什么？

为模块February微前端制作全球应用程序清单的工具

### 如何安装 @appshell/config？

在项目目录运行 npm install @appshell/config，或使用 pnpm add / yarn add / bun add。

### @appshell/config 支持 TypeScript 吗？

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

### @appshell/config 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @appshell/config 可以商用吗？

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

### @appshell/config 的下载量有多少？

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

### @appshell/config 还在维护吗？

最新版本 1\.0\.0-alpha\.148 发布于 2026/10/30（9 天前）；至今共发布 218 个版本，其中过去 12 个月发布了 141 个；首次发布于 2023/03/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

