随着项目越来越多, 每个项目下node_modules都有几百个依赖, 关键还都是重复的, 对于只有 256G 硬盘来说, 实在是有点太浪费了, 前段时间, 受到cooking的启发, 发现cooking是可以共用依赖的, 翻其源代码, 终于知道了, 原来webpack一直就有这个功能, 只是以前没注意到...

首先, 创建一个放依赖的目录, 比如: E:\web\npm (~\web\npm), 在目录下创建一个package.json, 把经常用到的依赖全都写进去, 然后执行npm installyarn, 这样这个文件夹就成了一个公共依赖库

再来, 就是配置webpack了, 在webpack配置文件里添加:

{
    resolve: {
        modules: [
            path.join(__dirname, './node_modules'),
            'E:\\web\\npm\\node_modules'
        ]
    }
}

注意: 检查下webpack配置, 如果已经存在resolve, 把上面代码合并进去, 另外, 如果配置文件不在项目根目录, 自行根据配置文件的位置修改path.join(__dirname, './node_modules')

到此, 就可以删除项目package.json下的公共依赖, 只保留项目依赖, node_modules下文件夹瞬间清爽了很多

发表评论
huihui
卧槽
huihui
有个问题,2个项目都用到了react-router,一个用的3.2一个用的4.2版本,如何处理?别叫我升级旧的,老项目没空升级