问题描述
问题将在我当前的用例中得到演示,将 cytoscape.js 与依赖项(布局及其各自的依赖项)捆绑在一起,但答案不应仅限于此用例。 此外,答案可能会使用其他依赖管理工具或捆绑器,而不是我在问题中提到/尝试过的。
我对在 JS 环境中使用 npm/yarn 或其他依赖项管理系统的可能性感兴趣,以获取具有相应依赖项的项目依赖项(依赖项树的完整深度)并能够将它们捆绑到非 JS 应用程序中,此类包可用于标准 HTML/CSS/JS 应用程序(无论服务器端语言如何)
我目前正在使用 Cytoscape.js 在我的应用程序中渲染图形。由于我想为用户提供更改图形布局的选项,因此我使用了 cytoscape.js (https://js.cytoscape.org/#extensions/layout-extensions) 支持的多个布局扩展。即可乐、cise 和 dagre (d3)
在我的案例中,包含扩展和所需依赖项的完整 cytoscape 包有 8 个文件,我有时从 github 存储库(通常是 dist
文件夹或 releases
)获得,有些来自 CDN(例如 cdnjs ) 或来自相应的项目演示页面。原因是并非所有依赖项都在存储库、cdn 或其他地方很好地命名和提供发布文件。
我希望有可能,创建js项目(使用npm/yarn),添加我需要的依赖项,让npm/yarn找出项目中所有依赖项的正确最新版本,并让bundler创建单个缩小和未损坏的 javascript 文件,可以在标准的 javascript/jquery 前端代码中使用,而不必在同一个项目中编写 my-app javascript
问题是,是否可以自动打包js项目依赖,并提供js bundle,可以在非js应用中使用?(比如类似于Jquery UI Download Builder最后提供)
在我看来,优化结果包(大小)是不可能的,因为打包过程不能假设使用或不使用依赖项的哪些部分,它当然可以缩小,但修改符号是不可能的。
链接:
- https://github.com/cytoscape/cytoscape.js/issues/2810 - 针对 cytoscape.js 用例解释了这个问题
- simplest build system for cytoscape.js? - 类似的问题,其中仅提供答案并不能解决获取具有依赖项的布局的问题
- https://github.com/smarek/cytoscape.bundle.js/tree/esbuild - 使用 ESBuild 实际工作 cytoscape 并使用几个布局示例
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)