Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
webpack 4是否会消除已被webpack捆绑的npm包中的重复数据?_Npm_Webpack_Webpack 4 - Fatal编程技术网

webpack 4是否会消除已被webpack捆绑的npm包中的重复数据?

webpack 4是否会消除已被webpack捆绑的npm包中的重复数据?,npm,webpack,webpack-4,Npm,Webpack,Webpack 4,我见过其他类似的问题。我看到的问题是在Webpack4发布之前提出的,没有具体询问npm,也没有得到明确的回答 假设我使用webpack捆绑包含依赖项的包,我不想将这些依赖项归类为webpack外部依赖项和npm对等依赖项。然后我将这个包发布到npm 有人下载我的软件包并将其作为项目的一部分使用。该项目已经包含我的包的一个依赖项。让我们假设这个项目是由webpack捆绑的 1.)捆绑项目时,webpack是否会识别并消除重复依赖项 2.)如果不是,并且如果我不使用webpack捆绑我的npm包,

我见过其他类似的问题。我看到的问题是在Webpack4发布之前提出的,没有具体询问npm,也没有得到明确的回答

假设我使用webpack捆绑包含依赖项的包,我不想将这些依赖项归类为webpack外部依赖项和npm对等依赖项。然后我将这个包发布到npm

有人下载我的软件包并将其作为项目的一部分使用。该项目已经包含我的包的一个依赖项。让我们假设这个项目是由webpack捆绑的

1.)捆绑项目时,webpack是否会识别并消除重复依赖项

2.)如果不是,并且如果我不使用webpack捆绑我的npm包,它会允许webpack在捆绑项目时重复删除重复的依赖项吗


3.)这些方面的最佳实践是什么?

如果您已经分发了一个由webpack捆绑的文件,其中包含所有依赖项,则不需要声明依赖项或对等依赖项

1.)捆绑项目时,webpack是否会识别并消除重复依赖项

3.)这些方面的最佳实践是什么


发布带有外部和对等依赖项的捆绑包,并让捆绑包发生在用户端。

因此,对于3。)最佳实践,如果我与webpack捆绑,所有依赖项都应该是外部/对等依赖项?如果我有5个不常见的依赖项呢?每次有人使用我的软件包时,他们必须下载全部5个,以避免重复?这似乎很奇怪。当人们安装您的软件包时,您不常见的依赖项将被下载。那么webpack在另一方面会做得更好。发布已经绑定的依赖项一点也不坏。这实际上取决于你。谢谢你的帮助!所以你是说,如果我捆绑,它将重复数据消除。如果我没有绑定外部/对等依赖项,它将在用户下载我的npm包时自动安装其他依赖项?或者,用户需要手动下载对等依赖项?如果您捆绑或不捆绑,webpack将以任何方式进行重复数据消除。最常用的策略不是捆绑,而是让应用程序的使用者捆绑它。这并不意味着你不能捆绑,这取决于你。如果您想确保它在任何地方都能正常工作,您可以绑定,不管是什么。当您添加为依赖项时,当有人编写
npm install yourpackage
时,它会在您的package.json上的dependencies对象上安装所有依赖项。当您设置peerDependencies时,用户必须安装这些依赖项,它们不会自动安装。