gpt4 book ai didi

javascript - 使用 package.json 作为客户端包,可以在浏览器中动态加载

转载 作者:行者123 更新时间:2023-12-03 07:05:33 25 4
gpt4 key购买 nike

我正在考虑扩展 package.json 的格式以包括在客户端加载动态包(插件),我想了解这个想法是否与npm 愿景与否。换句话说,我想在浏览器运行时加载一堆共享公共(public)元数据的模块。像 system.js 和 jspm 这样的解决方案非常适合模块管理,但我寻求的是客户端的动态管理。

详细来说,我想添加一个像“myapp-clientRuntimeDependency”这样的属性,它允许指定由浏览器加载的依赖项,而不是标准的预打包(npm install->browserify-like解决方案)。

package.json 示例:

{
name: "myapp-package",
version: "",
myapp-clientRuntimeDependencies: {
"myapp-plugin": "file:myapp-plugin",
"myapp-anotherplugin": "file:myapp-anotherplugin"
},
peerDependencies: {
"myapp-core": "1.0.0"
}
}

问题:这个想法与“npm”和“package.json”愿景相矛盾吗?如果是的话为什么?

非常感谢 npm 社区的任何反馈。

引用文献:扩展package.json:http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging

编辑:

这个问题表述得不太好,更好的提问方式是:

在 package.json 中指定 2 个动态加载的前端包之间的运行时依赖关系的最标准方法是什么(例如,由某些现有工具处理,可能由 npm 支持)?

将 JSON 格式的元数据附加到动态加载的前端包的最标准方法是什么?

最佳答案

我不会说它与 package.json 的愿景相冲突,但它似乎与通常的使用方式有点冲突。正如您所知,package.json 通常在运行时使用。为了将 package.json 中的某些内容加载到运行时中,您必须将 package.json 加载到前端代码中。如果您存储的配置不希望通过简单的 View 源对前端可见,那么这肯定会带来问题。

有一件事不太让我感兴趣:你说 system.js 和 jspm 对于模块管理很有用,但你正在寻找包管理>。最后,包和模块往往是同义词,因为包变成了模块。

我可能误解了您正在寻找的内容,但从我收集到的信息来看,我建议您查看代码拆分...这本质上是创建单独的 js 文件,这些文件将根据动态加载而不是将所有 javascript 捆绑到一个文件中。 Here's some docs on how to do this with webpack (我确信 browserify 也能做到这一点)。

关于javascript - 使用 package.json 作为客户端包,可以在浏览器中动态加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36842896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com