11月28, 2017

node-prune助你瘦身node_modules

最近逛Github的Trending,发现一个Node.js项目的辅助工具,作者是鼎鼎大名的TJ,用于帮助清理Node.js项目中日渐臃肿的node_modules,下图是node-prune项目中的一张打趣图,虽然个人觉得这也不是npm一家独有的现象,不过还是很形象。

node-prune-why

那么,先来看一段node-prune的简易描述:

node-prune is a small tool to prune unnecessary files from ./node_modules, such as markdown, typescript source files, and so on.

接着,简单介绍一下如何安装及使用。

首先,node-prune这个工具是基于go的,所以你的系统上得安装go,如果你也是使用MAC的话,那就比较简单了,直接使用brew安装就好了:

$ brew install go

接着就是在本地安装node-prune:

$ go get github.com/tj/node-prune/cmd/node-prune

这里有点需要注意一下,安装完以后,你会发现无法直接运行node-prune这个命令,因为node-prune目前的位置是在~/go/bin里面,而这个路径可能并不存在于你的PATH中,所以你需要手动输入node-prune的路径才行。

最后就是使用node-prune来清理node_modules中的冗余文件了。

$ ~/go/bin/node-prune /PATH/TO/PROJECT/node_modules

/PATH/TO/PROJECT/node_modules就是你项目中的node_modules路径。

来个效果图 node-prune-result

一个小项目就可以轻松瘦身25MB,使用又是如此简单,对于SSD硬盘才250G的我而言,这个工具确实绝对值得拥有。

最后如果你需要遍历清理一个目录下所有项目的node_modules,可以参考一下这个shell脚本:

#!/usr/bin/env bash

find * -prune -type d | while read d; do
  if [[ -e "${d}/package.json" && -d "${d}/node_modules" ]]
  then
    echo "-------- Node.js Repository: { $d } ---------"
    echo "start node-prune process..."
    /PATH/TO/go/bin/node-prune "${d}/node_modules"
    echo "prune done!"
    echo ""
  fi
done

本文链接:https://itony.net/post/node-prune.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。