【问题标题】:How can I namespace a SystemJS bundle如何命名 SystemJS 包
【发布时间】:2016-07-05 22:20:31
【问题描述】:

我正在使用我想包含在另一个项目中的 SystemJS 构建器构建一个包。我遇到的问题是捆绑包 A 和捆绑包 B 可能都包含一个“主”模块,当我捆绑它们并将它们包含在另一个项目中时,它们会发生冲突并且一切都会中断。

SystemJS 构建器是否有更好的命名空间方式?或者根本阻止捆绑的模块被导出?还是我应该使用其他工具?

【问题讨论】:

  • 我认为这是设计问题的线索。在我看来,不是“应用程序包”的包不应该有主模块,应用程序包不应该相互共同加载。
  • main 是一个例子,它可能有其他名称冲突。
  • 不应该a/mainb/main 已经是不同的模块吗?除非您使用全局模块标识符,否则这应该不是问题。
  • 它们正在单独开发。模块 a 是一个项目,模块 b 是一个项目,它们被构建并包含在父应用程序中。所以当我使用系统 js 构建和包含它们时,modulea.built.js 和 moduleb.built.js 都有类似system.register("main")

标签: javascript namespaces ecmascript-6 systemjs


【解决方案1】:

SystemJS 没有简单的方法来做你想做的事。

您可以通过路径而不是名称来导入模块。

import x1 from "folder1/x.js"
import x2 from "folder2/x.js"

您也可以尝试拥有两个 SystemJS 实例。

https://stackoverflow.com/a/30954312/6101582

https://github.com/systemjs/systemjs/issues/982

您也可以重命名模块。

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 2016-06-19
    • 2015-06-16
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2017-12-16
    相关资源
    最近更新 更多