@appshell/config

中文文档
1.0.0-alpha.148发布于 2026/10/30MITTypeScriptCommonJS构建来源已验证近 30 天下载 5601

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

中文使用文档
文档目录3 节
  1. 开始
  2. 职能
  3. generateManifest

Appshell CI

@ appshell/ 配置

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

工作实例可见于此 这里。 。 。 .

说明: 这个软件包不再出版,建议使用 @ appshell/ cli (英语) 换句话说.

开始

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

npm install @appshell/config --save-dev

或者说

yarn add -D @appshell/config

或者说

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文件加载、比较和格式化帮助—— 说
validatorsAppshellTemplateValidator—— 说

generateManifest

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

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

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

模板从何而来?

每个微前端配置 @appshell/webpack-plugin (英语) 发射 appshell.template.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 一旦装入。 软件包必须共享 @appshell/runtime 作为接收他们的单子 见一用例.

应用壳样品清单 generateManifest 函数 :

{
  "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 (英语) 软件包。 你可以直接打电话 appshell generate manifest --template /path/to/appshell.template.json 以生成启动时的运行时间表.

版本与发布记录

@appshell/config 共发布 218 个版本,首次发布于 2023/03/04;过去 12 个月发布了 141 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.0-alpha.148latest2026/10/309 天前
1.0.0-alpha.1472026/10/2910 天前
1.0.0-alpha.1462026/10/2810 天前
1.0.0-alpha.1452026/10/2810 天前
1.0.0-alpha.1442026/10/2712 天前
1.0.0-alpha.1432026/10/2613 天前

关于 @appshell/config 的常见问题

@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 和提交记录判断。