组织多个Webpack条目文件依赖项



如何使用webpack不同的入口文件/configs在第三部分捆绑包(例如vendor/子目录(中组织具有自己依赖关系的JS可重用组件?

描述:

我有以下结构与入口点和组件

app/
assets/
index.js
package.json
webpack.config.js
vendor/
my-utils-bundle/
assets/
components/
MyMath.js
package.json
webpack.config.js

在我的可包含在不同入口文件/webpack配置MyMath.js组件中,有node_modules/对包的依赖性,例如mathjs,行如下:

import { pi, pow, round, sqrt } from 'mathjs'
....some code below...

本捆绑包中提供的p.S.mathjs依赖包(vendor/my-utils-bundle/package.json(

然后,当我运行yarn devapp/assets/index.js中编译我的资产时,会出现以下错误:

"./vendor/my-utils-bundle/assets/components/MyMath.js" contains a reference to the file "mathjs".
This file can not be found, please check it for typos or update it if the file got moved.

问题:

我如何使用这个CCD_ 9组件作为CCD_;束";(例如vendor/my-other-bundle(?

看起来我也可以在app/package.json中安装这个mathjs依赖项,但在应用程序级别上,我似乎应该考虑捆绑JS依赖项,这听起来不是最好的解决方案。

这是一个自Encore推出以来一直存在的悬而未决的问题。更早的时候,考虑到根据捆绑包的最佳实践,不应该分发第三方依赖项,而是让应用程序来管理。

也就是说,至少有一个bundle(foxy(试图解决这个问题,方法是在安装/更新包时挂接到composer命令并合并依赖项。

从它的自述(强调我的(:

Foxy专注于验证、添加、,的定义文件中的依赖项的更新和删除资产包,同时恢复项目状态,以及PHP如果NPM或Yarn因错误而终止,则依赖关系。

Foxy检索所有Composer依赖项的列表,以注入json文件包中的资产依赖项

[…]

鉴于Foxy不操纵任何资产依赖性,更不用说版本约束了,这允许NPM或Yarn,在没有任何中间的情况下解决资产依赖性

最新更新