使用 Webpack 的 DllPlugin 创建共享库

Create shared library with Webpack's DllPlugin

我想创建一个核心 NPM 包,其中包含所有很少更改的依赖项,例如Angular。由于不同的项目会使用这个 NPM 包,而 Webpack 是首选的打包和构建工具,我认为 Webpack 的 DLL 插件会是一个不错的选择。

但不知何故,消费者包无法解析使用 DLL 插件创建的库包的内容。我在这里创建了一个最小示例 https://github.com/matoilic/webpack-dll-example。核心模块仅包含 Angular,然后消费者模块应该能够从那里使用 Angular。但是消费者包的构建失败并出现错误,即 'angular' 找不到。

Module not found: Error: Can't resolve 'angular' in '.../packages/poc-module/src/application'

有人知道问题出在哪里吗?

DLL 插件似乎没有正确处理符号链接。就我而言,我有一个 mono-repo,其中包含多个相互链接的包。

https://github.com/webpack/webpack/issues/3489

解决方法是通过 npm pack 创建一个可安装包并安装生成的存档而不是使用 npm link