@atlaskit/codemod-utils

中文文档
5.2.0发布于 2026/11/06Apache-2.0TypeScriptESM + CJS近 30 天下载 35.7万

jscodeshift-相容的编码工具

中文使用文档
文档目录3 节
  1. 代码化的家
  2. 实例
  3. 高级用途

代码化的家

作为Atlaskit中组件的lide模式转换的一部分,我们发现 codemods 与 j 代码转换 这对我们的消费者 带来一些突破性变化非常有益 然而,对于我们需要写和维持它们的人来说,一个痛苦点是,我们必须在许多地方复制-复制代码片段.

因此,这个包的目的是 缓解痛苦和中心 所有可重复使用 codemods 片段被切入到一个单一的地方,所有进一步的变化只应在这个repo中发生.

目标是作为npm软件包发布这个repo,这样我们的用户就可以简单地引入这些通用功能,并在其代码库中作曲.

实例

例如,当你想堕落一个道具时 isLoading 从消费者的代码库中,您可以在文件中引入一些辅助功能 transformer.ts 从 @atlaskit/codemod-utils数字 :

import {
  createRemoveFuncFor,
  createTransformer,
} from '@atlaskit/codemod-utils';

const removeIsLoading = createRemoveFuncFor(
  '@atlaskit/fancycomponent',
  'ComponentName',
  'isLoading',
);

const transformer = createTransformer([removeIsLoading]);

export default transformer;

然后运行 transformer 例如:

npx jscodeshift -t transformer.ts  --ignore-pattern node_modules --parser babel --extensions ts path/to/your/codebase

高级用途

如果您需要用一个以上的突变来对照您的代码库,并且想要在一次中应用全部突变,建议将其妥善地排列成一个单独的文件夹.

例如,如果需要三个单独的步骤:

  • 删除 isLoading 道具
  • 重命名 isDefaultChecked 改为 defaultChecked
  • 添加新道具 title

然后您可以有一个文件夹名为 migrates 其中包含:

  • 删除 - is Loading.ts
  • 重新命名为 is- Default 已检查到默认
  • 添加标题.ts

对于每个文件,你可以有一些代码,比如:

import { createAddingPropFor } from '@atlaskit/codemod-utils';

export const addTitle = createAddingPropFor('@atlaskit/fancycomponent', {
  prop: 'title',
  defaultValue: '',
});

并在您的入境点 jscodeshift 你可以介绍所有移民:

import { addTitle } from './migrates/add-title';
import { removeIsLoading } from './migrates/remove-isLoading';
import { renameDefaultChecked } from './migrates/rename-isDefaultChecked-to-defaultChecked.ts';

import { createTransformer } from './utils';

const transformer = createTransformer([
  renameDefaultChecked,
  removeIsLoading,
  addTitle,
]);

export default transformer;

这样,你就可以很容易地用所有可能的情景分别测试这些迁移情况,并自由地编成它们,看看它们是否能够一起工作,实现整个转变.

版本与发布记录

@atlaskit/codemod-utils 共发布 31 个版本,首次发布于 2020/12/08;过去 12 个月发布了 4 个版本。

版本发布日期距今
5.2.0latest2026/11/061 天前
5.1.02026/08/302 个月前
5.0.02026/06/164 个月前
4.3.02026/05/205 个月前
4.2.52025/03/251.6 年前
4.2.42024/03/202 年前

其他发布通道:next → 4.2.2。

关于 @atlaskit/codemod-utils 的常见问题

@atlaskit/codemod-utils 是什么?

jscodeshift-相容的编码工具

如何安装 @atlaskit/codemod-utils?

在项目目录运行 npm install @atlaskit/codemod-utils,或使用 pnpm add / yarn add / bun add。

@atlaskit/codemod-utils 支持 TypeScript 吗?

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

@atlaskit/codemod-utils 支持 ESM 还是 CommonJS?

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

@atlaskit/codemod-utils 可以商用吗?

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

@atlaskit/codemod-utils 的下载量有多少?

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

@atlaskit/codemod-utils 还在维护吗?

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