我意识到导入第三方模块(即.vue 组件)内部使用的模块(例如moment.js)会生成一个模块是冗余的,因为导入了两次。
这是预期的行为还是我错过了什么?
如果重要的话,在 package.json 中的版本是完全一样的。
行为是正确的。一般来说,Webpack 会遍历应用程序的依赖树(包括传递依赖,即依赖的依赖)。
此外,只要导致该依赖项的所有导入都解析到同一个文件,webpack 就会确保它只打包某个依赖项一次。此行为仅在以下情况下发生变化:
您可以使用 Webpack 分析器来找出捆绑包中的此类异常。此外,您还可以使用 Webpack解析功能来指导 Webpack 永远不要两次打包类似的依赖项(仅按补丁号左右延迟)。