1

我是 jspm 的新手,我正在尝试评估 JSPM 作为我当前使用 requirejs 的应用程序的替代品。

jspm 如何处理多个模块/包?例如:

mycustomlib
   |
   |-src
   |-jspm_packages
   |    |-npm
   |    |-github
   |-config.js

上面的 config.js 文件包含 mycustomlib 所需的所有依赖项。注意,mycustomlib 没有发布到 npm,也不会在 github 上运行。这将是我的仓库中的私人自定义库。

现在说我有几个应用程序使用 mycustomlib 但有自己的 config.js,因为它们也有其他依赖项。

mycustomlib
  |
myapp1
  |
  |-src
  |-config.js

myapp2
  |
  |-src
  |-config.js

我应该如何确保 myapp1 和 myapp2 也可以使用 mycustomlib 中的 config.js,以便他们可以使用 mycustomlib 及其依赖项?

在 requirejs 方法中,我将 mycustomlib/config.js 包含在 index.html 中,然后 myapp1/myapp2 必须包含他们自己的 main.js,其中包含 requirejs.config({....}); requirejs 将合并配置。

我想这归结为,使用本地包/模块的推荐方法是什么?

4

1 回答 1

1

据我所知,没有一种机制可以完全按照您现在的希望执行此操作。也许有人最终会实现一个本地JSPM 自定义注册表。以下是您可以考虑的两种替代方法:

1.(ab)使用JSPM链接机制

我用来通过 JSPM 安装本地包的一个工作流程是为包分配一个 github/npm/jspm 别名,否则该别名不存在,并使用 JSPM 链接机制来安装本地包,而不是检索远程副本。在您的情况下,您可能(根据需要替换版本规范):

在 mycustomlib 目录中(此命令可能需要一些时间):

jspm link npm:mycustomlib@0.0.1

在每个myapp1和中myapp2

jspm install --link npm:mycustomlib@0.0.1

这有点麻烦,您会发现当任何内容mycustomlib发生更改时需要重新链接包,并且通常在更改myapp1/的依赖项时myapp2。jspm -linker包可以减轻这种痛苦并自动为您重新链接。

2.配置自己的注册表

您有几个选项来设置“您自己的”注册表。如果您还没有访问任何这些类型的服务,对于普通人来说,使用第 3 方git自定义 JSPM 注册表jspm-git可能是最简单的,它允许您直接从普通 git 存储库安装自己的库您在哪里托管您的图书馆。据我所知,您不能在 jspm-git 中使用本地路径。

关于共享您的 config.js:

只要您将每个包正确配置为 JSPM 包,共享 config.js 是不必要的。

于 2015-12-18T05:04:01.220 回答