如何在包含webpack不同入口文件/信任的第3部分包(例如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 dev在app/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.问题:
如何将此MyMath.js组件作为app/assets/index.js中的可包含类使用,或者在其他“包”(例如vendor/my-other-bundle)中使用?
看起来我也可以在mathjs中安装这个JS依赖项,但是在应用程序级别上,我似乎应该考虑捆绑JS依赖项,这听起来并不是最好的解决方案。
发布于 2022-01-16 11:09:25
这是一款自Encore推出以来一直在运行的未解问题。甚至在更早的时候,根据捆绑包的最佳实践的说法,第三方依赖关系不应该被分发,而是留给应用程序来管理。
尽管如此,在安装/更新包时,一捆(狐狸)试图通过连接到composer命令和合并依赖项来解决这一问题。
来自它的自述(强调地雷):
Foxy只关注验证、添加、更新和删除资产包定义文件中的依赖项的自动化,同时恢复项目状态,以及如果NPM或Yarn终止时出现错误时的PHP依赖项。 Foxy 检索所有编写器依赖项的列表,以在package.json文件中注入资产依赖项。 ..。 考虑到Foxy不操作任何资产依赖项,更不用说版本约束,这允许NPM或Yarn在没有任何中介的情况下解决资产依赖关系。
https://stackoverflow.com/questions/70728535
复制相似问题