V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
milklee
V2EX  ›  分享创造

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

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

    最近想逐步使用 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:47: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   ·   实用小工具   ·   2563 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:22 · PVG 10:22 · LAX 18:22 · JFK 21:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.