微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在我的 webpack (nuxt) 项目中导入其他模块使用的模块

如何解决在我的 webpack (nuxt) 项目中导入其他模块使用的模块

我意识到导入第三方模块(即 .vue 组件)内部使用的模块(例如 moment.js)会提供一个构建,其中该模块因导入两次而变得多余。

这是预期的行为还是我遗漏了什么?

在 package.json 中,如果重要的话,版本绝对相同。

解决方法

行为是正确的。通常,Webpack 会遍历应用程序的依赖树(包括传递依赖,即依赖的依赖)。

此外,只要导致该依赖项的所有导入都解析为同一个文件,webpack 会确保它只打包某个依赖项一次。此行为仅在以下情况发生变化:

  1. 您的代码或 node_modules 中有符号链接(或快捷链接)。
  2. 您有多个版本的相同依赖项。
  3. 意外的大写/小写字母更改会导致不同的文件(有时,在 Windows 上编写的不区分大小写的代码在 Linux 上构建时会发生这种情况,反之亦然。)
  4. 在极少数情况下,如果您使用动态导入,Webpack 有时无法确定确切的依赖项。

您可以使用 Webpack 分析器找出包中的此类异常。此外,您还可以使用 Webpack resolve 功能来引导 Webpack 永远不要两次打包类似的依赖项(仅通过补丁号左右延迟)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。