前端移动node_modules到其他位置

[toc]
说明 现在前端开发都是工程化管理, npm、yarn等包管理工具会在源码目录下生产node_modules文件夹;
node_modules文件夹很庞大, 文件数量很多, 有时候希望移动到其他位置, 这里提供一种方法;
原理 创建node_modules、package.json和其他的配置文件(如postcss.config.js)的符号链接(symbolic link)
批处理脚本 命名为mknm.bat放到path路径, 在前端源码根目录执行mknm

@rem 作用:在传入的文件夹下创建一个node_modules的link @rem 用法: 参数: 一个文件夹的完整路径, 如果忽略使用当前目录; @rem 其他: @rem 2018/11/08 周四 15:32:59.03 @echo off&SetLocal EnableDelayEdexpansionrem 传入一个文件夹路径 if "%1" equ "" ( "%~0" "%cd%" goto :eof ) echo 当前路径: %cd% echo; rem 1. 传入一个文件夹的路径; 2. 在baseDir创建同名的文件夹; 3. 创建link set dirPath=%~1 set dirName=%~nx1 set baseDir=D:\_node_modulesif not defined dirPath ( echo 参数为空; 应该传入路径 pause&goto :eof ) rem 创建文件夹; 最终的文件夹的路径是newDir call :creatDir "!dirName!"mklink /d "!dirPath!\node_modules" "!newDir!\node_modules" mklink "!newDir!\package.json" "!dirPath!\package.json" if exist "!dirPath!\postcss.config.js" ( mklink "!newDir!\postcss.config.js" "!dirPath!\postcss.config.js" )set file="!newDir!\readme.txt" ( echo mklink /d"!dirPath!\node_modules" "!newDir!\node_modules"echo mklink "!newDir!\package.json" "!dirPath!\package.json"echo mklink "!newDir!\postcss.config.js" "!dirPath!\postcss.config.js") >%file%echo 完成.......... goto :eof:creatDir set "name=%~1" :A set newDir=!baseDir!\!name! if not exist "!newDir!" ( mkdir "!newDir!\node_modules" goto :eof ) else ( set "name=!name!-1" goto :A ):eof

注意 【前端移动node_modules到其他位置】不保证100%有效, 可能install出错、运行出错, 可以尝试把其他文件(比如vue.config.js)也link一下;

    推荐阅读