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

标签 javascript json browser npm package

我正在考虑扩展 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/

相关文章:

javascript - 在 JSON 对象中查找属性

android - 在 Android 中解析 JSON-LD

javascript - Bootstrap Modal 在 Firefox 中关闭视频窗口后继续播放音频

javascript - 是否可以在浏览器中监控CPU/GPU?

javascript - Safari AJAX 调用在隐身模式下丢失 session /cookie?

javascript - 直接绑定(bind)和使用各个函数的区别

javascript - 我想让 v-card 透明,但它不能正常工作

php - 难以理解简单的算法

c# - 从问题背后的代码调用JS函数

java - webservice向java应用程序返回json编码数据