测试项目:通过vue-cli 2 初始化的vue+element-ui的webpack项目
package.json文件如下:
1 | { |
一、npm 装包
终端我用的是ConEmu ,在cmd环境下,其中ptime是类似于linux下time命令的一个小工具,用来显示命令执行花费的时间。
耗时:约35.1s
装完约17000多个文件
#### 二、 node_modules目录删除测试
1. 资源管理器shift+delete删除node_modules目录
耗时:约45s
使用cmd自带的rmdir命令删除node_modules
命令:1
ptime rmdir /q /s node_modules
耗时:约12.5s
- 使用rimraf删除node_modules目录
rimraf是一个node模块,以包的形式包装rm -rf
命令,就是用来删除文件和文件夹的,不管文件夹是否为空,都可以删除。
全局安装:
1 | npm install -g rimraf |
命令:1
ptime rimraf node_modules
耗时:约6.3s
- 使用python脚本删除node_modules目录
python脚本如下:
1 | import shutil,sys |
命令:1
python rm.py node_modules
耗时:约16.8s
- 在wsl中删除
命令:1
rm -rf node_modules
耗时:约13.8s
- 在git bash中删除
命令:
1 | rm -rf node_modules |
耗时:约19.4s
三、node_modules目录复制测试
- 直接在资源管理器中复制node_modules
耗时:约60s
- 使用cmd自带的xcopy命令复制node_modules目录
耗时:约48.8s
- 使用copy-node-modules复制node_modules目录
copy-node-modules是一个用来复制node_modules的node模块
全局安装:
1 | npm install -g copy-node-modules |
命令:
1 | ptime copy-node-modules . node_modules1 -d |
耗时:约20.3s
不过这个命令有个缺点就是 node_modules 下的 .bin 目录不会被复制过去
- 使用python脚本复制
python脚本:1
2
3
4
5
6
7
8import shutil,sys
if len(sys.argv) == 3:
src = sys.argv[1]
dest = sys.argv[2]
shutil.copytree(src,dest)
else:
print('参数不正确!')
命令:1
ptime python cp.py node_modules node_modules2
耗时:62.3s
- 在wsl中复制
命令:1
cp node_modules node_modules1 -r
耗时:约29.2s
- 在git bash中复制
命令:1
cp node_modules node_modules1 -r
耗时:约57.2s
统计:
删除:
方式 | 耗时 |
---|---|
资源管理器shift+delete删除node_modules目录 | 45s |
使用cmd自带的rmdir命令删除node_modules | 12.5s |
使用rimraf删除node_modules目录 | 6.3s |
使用python脚本删除node_modules目录 | 16.8s |
在wsl中删除 | 13.8s |
在git bash中删除 | 19.4s |
复制:
方式 | 耗时 |
---|---|
直接在资源管理器中复制node_modules | 60s |
使用cmd自带的xcopy命令复制node_modules目录 | 48.8s |
使用copy-node-modules复制node_modules目录 | 20.3s |
使用python脚本复制node_modules目录 | 62.3s |
在wsl中复制 | 29.2s |
在git bash中复制 | 57.2s |
npm install(如果这也算的话) | 35.1s |
综上:
用资源管理器来复制或者删除那些动辄就上万个文件的前端模块化项目,确实不是一个好主意,
如果想以最快的速度删除以及复制一个项目,请选择 rimraf 和 copy-node-modules ,
如果不追求速度的话,我肯定是推荐用wsl了,对于熟悉linux命令的人来说,cp和rm命令肯定是比上面那2个命令要好记得多的,建议搭配 wsl-terminal 一起使用