首先说下,这是个什么需求呢?
比如说,我用create-react-app
这类的脚手架,创建了一个项目,那必定要下载项目所依赖的包,那假设如果有十来个项目,都是一样的包,那不就是意味着重复下载了十来个项目的包,而如果可以实现把这些包复用的话,那是不是有效利用了空间,还可以统一管理,多方便啊。
然后不适合那些需要指定包的版本,反正就是特殊的项目,该方法只针对项目的所有包都是相同的,然后要升级一起升级,我这边本地的项目是有这种,所以搞了这个方法,分享。
这个方法的原理其实跟之前分享的《使用npm link来创建软链接》这篇文章是一样的。
主要用到的是Windows系统,一个叫mklink
的命令,我用的最多的是这个mklink
的命令的/d
参数,具体用法如下;
mklink /d 新的文件夹名 真实的文件夹路径
注意哦,前面的【新的文件夹名】,意思是说,比如你要你当前的项目是没有ode_modules
文件夹,那使用这条命令后它会自动把你创建一个文件夹(其实是个软链接)
而后面的【真实的文件夹路径】,即就是可以复用的ode_modules
文件夹路径了,看清楚哦,是文件夹路径哦,这条命令也只能是链接文件夹。
当然了,mklink
的命令其实还有很多的用法。大家可以看下这篇文章《mklink win平台下的软连接创建工具 实现文件or文件夹的映射》,我感觉写的挺详细,还有该命令不同的参数对比图,我最喜欢这种的对比,非常一目了然的知道有啥区别了。