问题将在我当前的用例中得到演示,将 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 或其他地方很好地命名和提供了发布文件。
我希望有可能,创建 js 项目(使用 npm/yarn),添加我需要的依赖项,让 npm/yarn 找出项目中所有依赖项的正确最新版本,并让捆绑程序创建单个缩小而不是-mangled javascript 文件,可以在标准 javascript/jquery 前端代码中使用,而不必在同一个项目中编写 my-app javascript
问题是,是否可以自动打包 js 项目依赖,并提供可以在非 js 应用程序中使用的 js 包?(例如,类似于Jquery UI Download Builder最后提供的)
在我看来,优化结果包(大小)是不可能的,因为捆绑过程不能假设哪些依赖项被使用或不使用,它当然可以被缩小,但修饰符号是毫无疑问的。
链接:
- https://github.com/cytoscape/cytoscape.js/issues/2810 - 这个问题解释了 cytoscape.js 用例
- 最简单的 cytoscape.js 构建系统?- 类似的问题,仅提供答案并不能解决获取具有依赖关系的布局的问题
- https://github.com/smarek/cytoscape.bundle.js/tree/esbuild - 使用 ESBuild 实际使用很少布局示例的 cytoscape