🧹 将 TypeScript 转换为更简洁的 JavaScript 项目
- 🖖 Vue 优先:优先支持 Vue 项目转换
- 🔌 可扩展:通过插件系统支持多种文件类型
- ⚡ 极致快速:使用
ts.transpileModule
进行快速编译 - 🖥️ 用户友好的 CLI:一条命令快速转换
- 🧩 无缝集成:作为 npm 包导入,轻松集成到项目中
- 🛠️ 可自定义:通过灵活的选项微调转换过程
- 📊 进度追踪:实时反馈转换状态
- 🎯 选择性转换:在复制和转换过程中忽略特定模式
- 📦 依赖管理:可选择移除指定依赖
- 🔄 导入优化:支持替换内部导入
npm install cleants
# 或
yarn add cleants
# 或
pnpm add cleants
npx cleants
import { Cleants } from 'cleants'
const cleaner = new Cleants(inputDir, outputDir, options)
await cleaner.run()
你可以在执行命令目录下添加
cleants.config.js
文件来指定更多配置
module.exports = {
inputDir: 'D:\\Projects\\demo',
outputDir: 'C:\\Users\\viarotel\\Downloads',
compilerOptions: {},
ignoredCopyPatterns: [
'.git',
'dist',
/\.d\.ts$/,
file => file.includes('node_modules'),
file => file.endsWith('.log')
],
ignoredConversionPatterns: [
'vendor',
/\.min\.js$/,
file => file.includes('legacy')
],
getOutputDir: inputDir => `${path.basename(inputDir)}.cleants`,
removeDependencies: ['typescript', 'vue-tsc', '@types/node'],
replaceInternalImports: true,
plugins: []
}
该类是将 TypeScript 项目转换为更简洁的 JavaScript 项目的主要类。
constructor(inputDir: string, outputDir: string, options?: CleantsOptions)
inputDir: string
- 输入目录路径outputDir: string
- 输出目录路径options?: CleantsOptions
- 可选配置选项
进度回调函数。
默认值:undefined
TypeScript 编译器选项。
默认值:{}
在复制阶段要忽略的模式。 默认值:
[
'.git',
'dist',
/\.d\.ts$/,
file => file.includes('node_modules'),
file => file.endsWith('.log')
]
在转换阶段要忽略的模式。 默认值:
[
'vendor',
/\.min\.js$/,
file => file.includes('legacy')
]
获取输出目录的函数。
默认值:inputDir =>
${path.basename(inputDir)}.cleants``
要移除的依赖。
默认值:['typescript', 'vue-tsc', '@types/node']
是否替换内部导入。
默认值:true
要使用的插件列表。
默认值:[basePlugin, vuePlugin]
actualOutputDir
将设置为path.join(outputDir, options.getOutputDir(inputDir))
- 如果没有提供
options.plugins
,默认使用[basePlugin, vuePlugin]
欢迎贡献、提出问题和功能请求!请随时查看 issues 页面。
如果这个项目对你的工作或学习有所帮助,请考虑为项目点赞或通过以下链接请我喝杯咖啡:
感谢所有贡献者!
typescript
javascript
converter
vue
cli
此项目依据 MIT 许可证发布。