jspm多个应用程序,通用本地模块

时间:2015-09-28 22:33:04

标签: javascript jspm systemjs

我是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方法中,我在index.html中包含了mycustomlib / config.js,然后myapp1 / myapp2必须拥有自己的main.js,其中包括requirejs.config({....}); requirejs将合并配置。

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

1 个答案:

答案 0 :(得分:1)

据我所知,没有一种机制可以完全按照你现在所希望的那样做。也许某人最终会实施本地JSPM Custom Registry。您可以考虑以下两种替代方法:

<强> 1。 (ab)使用JSPM链接机制

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

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

jspm link npm:mycustomlib@0.0.1

myapp1myapp2中的每一个:

jspm install --link npm:mycustomlib@0.0.1

这有点像kludge,你会发现当mycustomlib中的任何内容发生变化时,以及更改myapp1 / myapp2的依赖项时,您需要重新链接该程序包。 jspm-linker包可以缓解一些痛苦并自动为您重新链接。

<强> 2。配置您自己的注册表

您有几个options用于设置&#34;您自己的&#34;注册表中。如果您还没有访问任何此类服务,那么对于普通人来说,使用第三方git自定义JSPM注册表jspm-git可能最容易允许您直接从托管库的普通git存储库安装自己的库。据我所知,你不能使用jspm-git的本地路径。

关于分享您的config.js:

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