zoukankan      html  css  js  c++  java
  • 删除顽固node_modules

    在工作中有用到gulp,webpack,使用他们需用依赖node的一些模块包,于是会在目录下生成一个node_modules文件夹。有一次想删掉它重新生成模块包的时候发现根本不太可能,无穷无尽的报一个错:路径太长(太深),无法删除,使用命令行rddel均尝试无效(此问题win10系统下已不会出现,小伙伴们赶紧更新系统吧)。

    一开始我只能通过另起文件夹的做法来重新启用新项目,发现僵尸文件越来越多,几翻周折,终于找到解决方法。步骤如下:

    1. 新建空白目录,如 D:StudyemptyDir
    2. 管理员方式打开命令行窗口;
    3. 输入robocopy D:StudyemptyDir D:Study ode_modules /purge

    这里主要使用了robocopy命令,它是一个目录复制命令,配置好参数可以达到删除文件的效果,

    命令语法:ROBOCOPY source destination [file [file]…] [options]

    1. source:源目录(驱动器:路径或\服务器共享路径)
    2. destination:目标目录(驱动器:路径或\服务器共享路径)
    3. [file [file]…]:要复制的文件(名称/通配符: 默认为 "*.*")
    4. options参数设为/purse时可以删除源中不再存在的目标文件/目录。

    此处以一个空文件做源文件,相当于目标文件里的所有文件都是要被删除的,至此解决了删除问题

    虽然解决了文件删除的问题,但是总感觉缺少点什么,那就是感觉操作有此频琐,于时想到是否可以把当前命令行打包成一个文件快速执行了,当时就想到.bat批处理文件。

    于是百度脑补了下批处理文件制作方法,生成了如下批处理文件,代码大致如下:

    @echo off
    color 0b
    mode con cols=80 lines=25
    echo -----------------------------------------------------------------
    echo                          顽固文件删除
    echo -----------------------------------------------------------------
    echo ******************************************************************
    echo Tips:
    echo 输入*:删除当前目录下的node_modules
    echo 输入其它:则会删除对应文件名的文件夹
    echo ******************************************************************
    set /p deleFile=请输入您要删除的文件:
    if %deleFile% == * (goto deleNodeModules) else (goto deleUserFile)
    
    :deleNodeModules
    md deleEmptyFile
    robocopy deleEmptyFile node_modules /purge
    rd node_modules
    rd deleEmptyFile
    exit
    
    :deleUserFile
    md deleEmptyFile
    robocopy deleEmptyFile %deleFile% /purge
    rd %deleFile%
    rd deleEmptyFile
    exit

    本想实现当提示“请输入您要删除的文件”直接回车应该是直接删除node_modules文件夹,但是一直没能实现,暂时做到输入星号代表是删除node_modules文件夹,输入其它则是删除对应的文件夹名。批处理文件夹下载,可下载到本地再把其中的.bat文件放到要删除文件夹的同目录下,双击运行按提示输入即可批运行上面命令实现删除文件。

    使用此命令前最好先直接删除一下,只有余下那些删不了的文件的时候再用此方法来删除,如直接用这个命令删除等待时间有点小长,删除时的情景大致如下:

    增加方法2

    另一种删除node_modules的方式,通过安装rimraf来删除,更接近前端,也是这篇博客的读者seaton的留言分享方法,亲测可行,非常感谢,特记录下来。

    npm install rimraf -g
    rimraf node_modules

    个人能力有限,如果有能实现不输入文件夹直接回车就能直接删除node_modules文件夹的欢迎留言分享,谢谢,一起学习,一起进步!

  • 相关阅读:
    U9在SQL Server上的性能优化经验(转述) — 之 分页
    家里买了XBOX 360 Kinect
    哦,真是“不幸”的消息
    U9在SQL Server上的性能优化经验(转述) — 之 包含列索引
    Silverlight 4处理StartWith的BUG
    IIS HTTP重定向配置、参数设置
    【代码保留】怎样添加一个多选搜索引擎
    NSLog 使用
    ObjectiveC(IOS)推荐的属性读写方法
    16进制颜色(html颜色值)字符串转为UIColor
  • 原文地址:https://www.cnblogs.com/xwwin/p/5844182.html
Copyright © 2011-2022 走看看