手头有多个vue2项目,它们每个都需要一个node_modules,拷贝起来超级麻烦。于是想到能否共享一个node_modules呢??
方法其实挺多,我选择了一个较简单的:符号连接法(win11平台)
创建方法很简单:比如
项目工程地址:d:\project\projectA;
node_modules地址:d:\data\node_modules
bash
# 创建符号链接
mklink /D D:\project\projectA\node_modules\ D:\data\node_modules\
然后就可以愉快的在projectA中执行npm run serve啦
坑:如果创建链接时如下写法:
bash
# 错误的创建方式
mklink /d d:\project\projectA\node_modules d:\data\node_modules\
则会在npm run serve时,会提示各种找不到库的错误。
网上搜了好久没发现,偶尔发现mklink的符号链接,并不不是那么简单。
bash
# 查看链接的二进制
fsutil reparsepoint query node_modules
会发现以上两种方式创建的链接的细微差别,就是d:\和D:\的区别,汗。据说是webpack对符号链接兼容性不行,但那是大佬的事,我们也改不了webpack,哈哈。
因这个问题,卡了一天。。。。。