我在用:
"webpack": "4.12.0",
"rxjs": "5.5.9",
"@angular" : "5.2.11"用DDL插件捆绑库。
{
entry:
{"rxjs_5_5_9": [
"rxjs
],
"angular_5_2_11": [
"@angular/common",
"@angular/compiler",
"@angular/core",
"@angular/http",
"@angular/platform-browser",
"@angular/platform-browser-dynamic",
"@angular/router",
"@angular/service-worker",
"zone.js"
], (...) , "pck_libs_5_x_x": [
"pck-referentiel"
]},
output: {
filename: "[name].bundle.js",
path: TARGET_PATH + "/vendors/",
library: '[name]_lib'
},
plugins: [
new webpack.DllPlugin({
context: '.',
name: '[name]_lib',
path: TARGET_PATH + "/vendor-[name]-manifest.json",
}),
]
};正如您在上面看到的,我已经将Rxjs声明为一个分离的包。我的自定义库pck-referentiel使用rxjs并在99%的时间内通过以下方式导入它:
import {Observable} from "rxjs/Rx";其结果是:

(我圈出了每一个重复的rxjs)
我们可以清楚地看到,rxjs分散在所有不同的第三方lib中,包括我的。
用DllPlugin引用RxJ的正确方法是什么,因为导入RxJ的每个模块都不会复制RxJ ?
发布于 2018-06-22 11:26:25
这些来自您的第三方依赖包,这些包在内部依赖于rxjs,而不是您作为依赖包(rxjs)添加的包。您可以清楚地看到在其他rxjs第三方包中装箱的重复的。
因此,它们将被导入复制(不能说重复,因为它们可能根据rxjs中的子模块而变化)在vendor包中。
发布于 2018-06-22 13:42:03
好的..。由于阿米特·奇加达尼的回答,我开始怀疑我对DLLPlugin的理解是错误的。我是,把它看作是一个CommonChunkPlugin,能够去复制模块并交叉引用它们。唉,,我错了,。因此,我最终完成了两个DllPlugin传递:一个用于共享库,一个用于使用它们的框架,重用以前生成的清单文件。而且看起来很管用!
它提供了许多额外的构建配置工作,但它可以工作(直到现在.)!
https://stackoverflow.com/questions/50986830
复制相似问题