@aglyn/shared-ui-json-editor

中文文档
1.18.0发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 9621

一个全屏材料UI对话框,用于手工编辑JSON文件,由摩纳哥编辑支持. Beigner把它用于它的"Raw JSON"取景地为一棵节点树. 它主要是一个基石 @aglyn/besigner-ui,并在任何能够服务的 Next.js 应用程序中工作

中文使用文档
文档目录5 节
  1. 安装
  2. 里面有什么东西
  3. 使用量
  4. 怎样才合适
  5. 许可证

@aglyn/shared-ui-json-编辑器

一个全屏材料UI对话框,用于手工编辑JSON文件,由摩纳哥编辑支持. Beigner把它用于它的"Raw JSON"取景地为一棵节点树. 它主要是一个基石 @aglyn/besigner-ui,并在任何Next.js应用中工作,可以服务摩纳哥的资产.

从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .

安装

npm install @aglyn/shared-ui-json-editor

同伴依赖性 : react, (中文(简体) ), next 财务报告和审定财务报表 @mui/material。 。 。 . next 由于编辑器装入 next/dynamic 并且只向客户提供.

摩纳哥的资产来自您自己的来源. 包中配置了摩纳哥加载器以读取 /monaco/vs (以 MONACO_VS_PATH并且刻意没有CDN倒置. 复制 monaco-editor/min/vs 进入你的应用程序 public/monaco/vs 目录作为构建的一部分,否则编辑器不会加载.

里面有什么东西

  • JsonEditor 财务报告和审定财务报表 JsonEditorProps 从根入. JsonEditorProps 扩展材料UI DialogProps (这样) open 并补充:
    • defaultValue ——要编辑的文档,作为值而不是字符串;通过 JSON.stringify 当对话框打开时进入缓冲器。 道具所申报的类型由CodeMirror道具继承而来,因此一个对象目前需要一个铸件.
    • onSave(event, value) ——用解析过的JSON在Savy被按下时调用.
    • onClose(event, reason) —— 说 reason 实值 'backdropClick', (中文(简体) ), 'escapeKeyDown', (中文(简体) ), 'saveClick' 或者说 'cancelClick'。 。 。 .
    • validate(value) ——返回一条信息来屏蔽保存并显示它;返回任何信息都不允许.
    • title (默认"Raw JSON")和 description。 。 。 .
  • 值得了解的行为:不解析的文本被保存在键入,在警告中报告,并被块保存。 背景点击不会关闭未保存编辑的对话框 。 输入的缓冲器从不被新设置所覆盖 defaultValue。每次组件挂起时,都会覆盖编辑器.
  • 子路径模块 : @aglyn/shared-ui-json-editor/components/monaco-editor (单位:千美元)MonacoEditor, (中文(简体) ), MONACO_VS_PATH和 @aglyn/shared-ui-json-editor/components/code-mirror-editor (单位:千美元)CodeMirrorEditor,该对话框默认不会使用 CodeMiror 选项。 摩纳哥模块在装入时配置装载器,以及 package.json 将它列在 sideEffects 因为这个原因.

使用量

import { JsonEditor } from '@aglyn/shared-ui-json-editor'
import { useState } from 'react'

export function Example(props: { doc: object; onChange: (doc: unknown) => void }) {
  const [open, setOpen] = useState(false)
  return (
    <>
      <button onClick={() => setOpen(true)}>Edit JSON</button>
      <JsonEditor
        open={open}
        defaultValue={props.doc as any}
        onClose={() => setOpen(false)}
        onSave={(event, value) => props.onChange(value)}
        validate={(value) =>
          Array.isArray(value) ? 'The document must be an object.' : null
        }
      />
    </>
  )
}

怎样才合适

A 类 shared UI软件包. 这取决于 @aglyn/shared-ui-jsx 财务报告和审定财务报表 @aglyn/shared-data-enums,以及 @aglyn/besigner-ui 取决于它。 共享软件包是通用的:它们只导入其他共享软件包并持有没有插件的域名.

许可证

阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/shared/ui/json-editor 互联网档案馆的存檔,存档日期2014-12-22

版本与发布记录

@aglyn/shared-ui-json-editor 共发布 160 个版本,首次发布于 2026/09/21;过去 12 个月发布了 160 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.18.0latest2026/11/07今天
1.17.02026/11/07今天
1.16.02026/11/07今天
1.15.22026/11/061 天前
1.15.12026/11/061 天前
1.15.02026/11/061 天前

其他发布通道:beta → 1.0.0-beta.296。

关于 @aglyn/shared-ui-json-editor 的常见问题

@aglyn/shared-ui-json-editor 是什么?

一个全屏材料UI对话框,用于手工编辑JSON文件,由摩纳哥编辑支持. Beigner把它用于它的"Raw JSON"取景地为一棵节点树. 它主要是一个基石 @aglyn/besigner-ui,并在任何能够服务的 Next.js 应用程序中工作

如何安装 @aglyn/shared-ui-json-editor?

在项目目录运行 npm install @aglyn/shared-ui-json-editor,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:next(^16.3.3)、react(^19.2.8)、@mui/material(^9.3.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aglyn/shared-ui-json-editor 支持 TypeScript 吗?

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

@aglyn/shared-ui-json-editor 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aglyn/shared-ui-json-editor 可以商用吗?

@aglyn/shared-ui-json-editor 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aglyn/shared-ui-json-editor 的下载量有多少?

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

@aglyn/shared-ui-json-editor 还在维护吗?

最新版本 1.18.0 发布于 2026/11/07(今天);至今共发布 160 个版本,其中过去 12 个月发布了 160 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。