将 Yarn 项目转为 NPM 的命令行工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
milklee
V2EX    分享创造

将 Yarn 项目转为 NPM 的命令行工具

  •  
  •   milklee 2017-10-31 16:03:12 +08:00 8176 次点击
    这是一个创建于 2906 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想逐步使用 NPM 替换 Yarn 了,所以写了这么个命令行工具。

    使用起来很简单,先确保你的电脑里安装了 Node.js ,然后使用 NPM 全局安装:

    npm install yarn2npm -g 

    然后在你的项目里运行:

    y2n 

    如果你要删除 yarn.lock,可以加个 -d 参数:

    y2n -d 

    工作原理是检测当前工作目录下是否有 package.jsonyarn.lock,如果有就删除 node_modules (如果你加了 -d 参数还会删除 yarn.lock )然后运行 npm install

    源码地址: https://github.com/lmk123/yarn2npm

    16 条回复    2017-11-09 23:04:57 +08:00
    SourceMan
        1
    SourceMan  
       2017-10-31 16:21:43 +08:00
    rm -r node_modules
    yarn
    git xxx
    coderfox
        2
    coderfox  
       2017-10-31 16:24:54 +08:00 via Android
    还以为会做 yarn.lock 转 npm lock 的工具。
    希望能加上这个功能。
    milklee
        3
    milklee  
    OP
       2017-10-31 16:43:04 +08:00
    @coderfox 就我目前的几个项目来看,直接使用 `npm install` 生成全新的 package-lock.json 是没有兼容性问题的,所以暂时没有考虑要做 yarn.lock 转 package-lock.json 的功能。
    hronro
        4
    hronro  
       2017-10-31 16:53:06 +08:00 via iPhone
    可以谈一谈从 yarn 转到 npm 的原因嘛
    milklee
        5
    milklee  
    OP
       2017-10-31 17:20:00 +08:00
    @hronro 纯粹是出于个人喜好吧,目前 NPM 5 对我来说已经够用了,所以我决定统一使用 Node.js 自带的 NPM 而不是需要单独安装的 Yarn。
    whypool
        6
    whypool  
       2017-10-31 17:28:53 +08:00
    感觉 yarn 快要凉了,对比 npm5 优势不大了
    TangMonk
        7
    TangMonk  
       2017-10-31 18:31:12 +08:00 via Android
    贵圈真乱
    MinonHeart
        8
    MinonHeart  
       2017-10-31 21:12:28 +08:00 via iPad
    就你们前端事多
    orzfly
        9
    orzfly  
       2017-10-31 21:22:22 +08:00   2
    if [[ -f yarn.lock && -d node_modules ]]; then rm -Rf yarn.lock node_modules && npm install; fi

    至于写个包么(跑
    mooncakejs
        10
    mooncakejs  
       2017-10-31 22:59:07 +08:00 via iPhone
    @orzfly 包版本信息全丢了
    milklee
        11
    milklee  
    OP
       2017-11-01 10:41:33 +08:00
    @orzfly 玩不来 Shell
    qingv
        12
    qingv  
       2017-11-01 13:22:30 +08:00
    希望可以直接换 lock
    orzfly
        13
    orzfly  
       2017-11-01 13:47:52 +08:00
    @mooncakejs #10 哦,那又怎样……

    楼主本身那个东西就这样,丢了包版本信息,并不会把 yarn.lock 转成 package-lock.json。
    isbase
        14
    isbase  
       2017-11-01 17:4:19 +08:00
    kinglisky
        15
    kinglisky  
       2017-11-06 13:23:08 +08:00
    看到你了~
    superelepant
        16
    superelepant  
       2017-11-09 23:04:57 +08:00
    yarn 比 npm 快呀,不懂楼主为何
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3436 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 10:39 PVG 18:39 LAX 03:39 JFK 06:39
    Do have faith in what you're doing.
    ubao 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