我在用着 :
"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 分散在所有各种第三方库中,包括我的库。
使用 DllPlugin 引用 RxJs 的正确方法是什么,因为它不会在导入它的每个模块中重复?