我有多个项目都引用相同的node_modules,每次都要在不同的项目里面npm install,然后就有一堆重复node_modules看着实在是心烦。
所以,现在要做的就是,把node_modules单独拿出来,其他的项目来到指定的目录里面找到node_modules。
版本
本文用到webpack版本为3.6.0
方法:
- 配置环境变量 变量名:NODE_PATH 变量值:你的node_modules包的位置。(这一步的目的是,当你的项目一层一层的找node_modules找不到时,会到NODE_PATH的路径来找)
坑:
- 我在用element-ui时,这么做会报错:
Error: No PostCSS Config found in element-ui/lib/theme-chalk
。我在element-ui/lib/theme-chalk里面创建了postcss.config.js文件,内容为:
module.exports = {}
2018.12.11 更新
按上述方法我们在npm run build
以后,原来的vendor.js会不见,把所有的东西都打包到了app.js中。
解决方案:
在webpack.prod.conf.js中找到:
new webpack.optimmize.CommonsChunkPlugin({
name: 'vendor',
minChunks (
return (
... //此处省略
path.join(__dirname, 'node_modules相对路径') // 找到path.join 把原来的'.../node_modules'改为新的node_modules的相对路径,绝对路径不行
)
)
})