Cleants:开历史的倒车,但至少我是认真的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
viarotel
V2EX    分享创造

Cleants:开历史的倒车,但至少我是认真的

  •  
  •   viarotel 2024 年 10 月 17 日 5707 次点击
    这是一个创建于 472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    cleants-banner.webp Cleants 帮助你做一件勇敢的事情逆行在技术的高速公路上。如果你厌倦了过度复杂化的开发,渴望回归简洁的 Javascript 世界,那么 Cleants 就是为你准备的工具。它可以让你在现代 TypeScript 项目中时光倒流,回到更简洁、更直接的 Javascript 。

    什么是 Cleants ?

    Cleants 代表“Clean TypeScript to Javascript conversion”,是一款快速将 TypeScript 转换为 Javascript 的工具。它不仅支持 Vue 项目,还提供插件系统扩展功能,并保持极致的转换速度。

    主要特点

    • Vue 优先:专为 Vue 项目优化。
    • 极简命令:只需一条命令即可完成转换。
    • 进度反馈:实时查看转换状态。
    • 灵活配置:支持外部配置文件与插件系统。

    为什么选择 Cleants ?

    1. 速度快:使用 ts.transpileModule 编译,飞快地完成转换。
    2. 简单易维护:移除复杂的类型系统,让项目更轻量化。
    3. 零学习曲线:如果你会 Javascript ,那就已经会用 Cleants 了。

    如何使用 Cleants ?

    CLI

    只需运行以下命令:

    npx cleants 

    编程接口

    如果你想在项目中集成 Cleants ,可以这样用:

    import { Cleants } from 'cleants' const cleaner = new Cleants('输入目录', '输出目录', options) await cleaner.run() 

    API

    Cleants

    这个类是 Cleants 的核心,负责将 TypeScript 转换为 Javascript 。

    constructor(inputDir: string, outputDir: string, options?: CleantsOptions) 
    可选参数
    • **compilerOptions**:TypeScript 编译选项,默认为 {}
    • **ignoredCopyPatterns**:忽略复制的文件,默认为 ['node_modules', '.git', 'dist', /\.d\.ts$/]
    • **removeDependencies**:移除依赖,默认为 ['typescript', 'vue-tsc']
    • **replaceInternalImports**:是否替换内部导入,默认为 true

    结语

    Cleants 让你在纷繁复杂的现代技术栈中“刹一脚”,回归到简单、直接的 Javascript 开发方式。无论你是追求速度、简洁,还是只是想嘲笑一下自己“开历史的倒车”,Cleants 都是不错的选择,哈哈。

    想了解更多,请访问项目地址:Cleants GitHub.

    24 条回复    2024-10-19 19:32:52 +08:00
    R4rvZ6agNVWr56V0
        1
    R4rvZ6agNVWr56V0  
       2024 年 10 月 17 日   2
    我突然笑出声了。 但不是在嘲笑 OP ,就是发自内心的笑出声
    coolfan
        2
    coolfan  
       2024 年 10 月 17 日
    zhlxsh
        3
    zhlxsh  
       2024 年 10 月 17 日 via iPhone
    利好前端
    chairuosen
        4
    chairuosen  
       2024 年 10 月 17 日
    搞个大新闻
    folishcrab
        5
    foolishcrab  
       2024 年 10 月 17 日 via iPhone
    去 ts 又不是什么小众选择,特别框架类项目 jsdoc 比 ts 好太多了。
    有些人在这里阴阳怪气殊不知自己井底之蛙。
    还是要多学习一个,或者上推跟 dhh 吵两句
    48y1951r9G8k7Zou
        6
    48y1951r9G8k7Zou  
       2024 年 10 月 17 日
    还在用 Vue 、Javascript 和 NPM ,不够开倒车

    我上家公司(某传统行业 500 强,算是半个科技巨头)做的前端,页面是纯手撸的静态 HTML+CSS ,有返回动态数据的都是后端用 Perl 脚本拼接的 HTML ,然后走 FastCGI 传回前端。接受用户输入也全靠表单,完全不用 Javascript

    更重要的是,我查看了一下代码的提交记录,都是近两年写的,并非远古遗留的代码
    nagisaushio
        7
    nagisaushio  
       2024 年 10 月 17 日
    你还真别说,前阵子在 HN 看到一个项目 ts-blank-space ,实现了一个快速的 ts -> js 的编译器。它通过把 ts 的类型替换成等长的空格,将 ts 源码转成 js ,这样同时还有一个好处,即报错的行列位和 ts 源码是对的上的。

    https://bloomberg.github.io/ts-blank-space/

    https://news.ycombinator.com/item?id=41601250
    viarotel
        8
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @GeekGao ts 确实牛 B ,也可以说我菜,但我就是不喜欢 ts
    viarotel
        9
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @nagisaushio 有意思的项目,我后续研究一下,感谢分享
    viarotel
        10
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @majula 哈哈,一山更比一山高,能解决问题,就是好架构
    viarotel
        11
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @foolishcrab 感谢支持
    viarotel
        12
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @zhlxsh 有用就行,我自己是真不喜欢 ts ,感觉现在是个项目都要上 ts ,也不知道真能提高开发效率还是炫技呢
    viarotel
        13
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    @chairuosen 连个浪花都没得
    viarotel
        14
    viarotel  
    OP
       2024 年 10 月 17 日 via iPhone
    R4rvZ6agNVWr56V0
        15
    R4rvZ6agNVWr56V0  
       2024 年 10 月 17 日
    @viarotel 我也不喜欢 ts
    v1
        16
    v1  
       2024 年 10 月 17 日
    @majula 传统行业更明白技术稳定的重要性,只有互联网的那些“自以为是”的 PPT 人会不断讨论所谓的“赛道”,发明一个又一个可笑的名词。<参考影视飓风被下架的视频,因为 tim 说了实话,影响 PPT 二极管们给投资人洗脑,被集体下架>
    nomagick
        17
    nomagick  
       2024 年 10 月 17 日
    。。。缓慢打出一个问号
    sankooc
        18
    sankooc  
       2024 年 10 月 18 日
    @viarotel 你不是一个人 我也不喜欢 TS
    shunia
        19
    shunia  
       2024 年 10 月 18 日   2
    用 ts 有什么炫技的成分在?不是很懂。
    那对比 html 、jQuery ,用 vue 是不是炫技?
    对比下载三方库直接引入 html ,使用 node_modules 是不是炫技?

    一项技术而已,你可以选择学不学,用不用。
    但是质疑一个基本原理,认为 ts 不能提高效率,甚至觉得是炫技,有点无厘头。

    ts 有降低效率的时候,那就是你要设计非常复杂的类型系统的时候.
    但是同时可以参考: https://github.com/Effect-TS/effect ,它编写了及其复杂的类型系统,但是产品提供的特性却恰好相反,可以让用户在使用的时候简化心智负担。
    shunia
        20
    shunia  
       2024 年 10 月 18 日
    @shunia #19 错字啥的有点多,系统输入法就这样,凑合看吧。
    viarotel
        21
    viarotel  
    OP
       2024 年 10 月 18 日 via iPhone
    @shunia 你说的没有一点问题,我没有质疑 ts 带来的价值,也许我的描述有些过激,我只是觉得并不是所有的项目或情况都适合使用它,特别是团队人员水平参差不齐的情况下,也不是所有人都能进大厂,总有些挣扎在温饱线上的打工人,他们不在乎代码写的好不好,规不规范,他们只想早点下班,萝卜青菜各有所爱,不是吗?
    shunia
        22
    shunia  
       2024 年 10 月 18 日
    @viarotel #21 我没有在争论的意思,你的分享也是一种创造,我给你点赞,这点请先理解。

    但是我觉得你说的那句话有误导的成分,所以我才比较严肃的提出问题。

    最后你 21L 的回复我觉得有点走的更偏了。

    首先用不用 ts 和大厂毫无关系,因为我一路走过来都是小厂,团队里面也参差不齐,大家也都需要温饱,也有人写代码不遵循规范,但是没有人质疑过 ts 。什么东西好什么东西不好,这是作为一个专业人员的基本素养。和电工一摸电线就知道有没有电一样

    其次大家都想早点下班,就我的经验来看,同样的代码用 ts 写绝对比用 js 写,能让我早下班。不管是我写的还是别人写的:

    比如 react 的源代码是用 js 写的,我想搞清楚它其中的一部分代码的运行原理,就一定比同样用 ts 写出来的慢。原因很简单,不管是谁,写 js 代码的时候,都不可避免的会上各种黑魔法,尤其是往任何变量上直接附加额外的数据或者逻辑,甚至是改变原有的指向,而且喜欢隐藏在角落里。我最近用过的几个 js 写的库,我都看过了,全都藏着这种黑魔法,想看懂这种代码,一定会耗费更多的精力,因为天知道这坨东西在哪里被覆盖或者重定向了。ts 也不能解决这个问题,但是在遵循规范的前提下,黑魔法是相比 js 写的要更少的。

    包括我自己写一些东西,如果用 js 我就会忍不住上魔法,因为确实写起来更爽利。但是对读者和接手的人就及其不友好了。

    ts 是前端无数轮子也好、创新也好,我用过的技术种类里,最少操心而且带来最大收益的一个了。日常用下来真的省心又省事,更新了这么多年也没有像 react 一样开倒车,也没有像 vue 一样弄出无法平滑迁移的大版本,更没有像 angular 一样不思进取。

    - 学习成本足够低,还支持渐进式引入
    - 几乎全工具链完美支持,甚至新开的各种 runtime 都在默认支持
    - 一本 handbook 能解决日常遇到的绝大部分问题
    - 态度也很好,可以各大 bundler 协调主动调整 compilerOptions
    - 真正的商业级的官方支持

    这么优秀的工具,我个人觉得所有 js 人都值得拥有。
    viarotel
        23
    viarotel  
    OP
       2024 年 10 月 18 日
    @shunia #22 非常感谢你深度的理解和刨析,我虽然在上述描述中表达我不喜欢 TS ,但是我确实在相当长的时间内去理解和学习了 TS ,但是有一点不会改变,我不喜欢 TS 里唆的类型体操,这确实是我个人喜好问题,但是我不会阻止别人使用它,我只是提供一个回退选项,仅此而已;最后,即使不喜欢,我仍然会在需要 TS 的场景下的时候使用它;最后的最后,再次感谢你,让我更有 “勇气” 去使用 TS ,哈哈
    shakukansp
        24
    shakukansp  
       2024 年 10 月 19 日
    我还嫌 kotlin 的类型没 ts 好用呢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2072 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 11:49 PVG 19:49 LAX 03:49 JFK 06:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86