来自NPM的骨干通过JSPM

Jes*_*sen 18 jquery backbone.js jspm

我正在尝试使用JSPM从NPM安装backbone.marionette以进行客户端依赖性解析.使用commandprompt中的以下命令进行简单操作:

jspm install marionette = npm:backbone.marionette

除了jquery之外的所有依赖项都会自动下载和安装.但是我收到运行时错误:

无法调用延迟未定义.

我正在查看代码,我发现问题出现在主干源代码行9,10和11中

} else if (typeof exports !== 'undefined') {
  var _ = require("underscore");
  factory(root, exports, _);
Run Code Online (Sandbox Code Playgroud)

在运行时traceurJS,factory-method从这里调用,很明显,最后一个参数$被省略了.当我查看github上的主干源代码时,相同的行看起来像这样:

} else if (typeof exports !== 'undefined') {
var _ = require('underscore'), $;
try { $ = require('jquery'); } catch(e) {}
factory(root, exports, _, $);
Run Code Online (Sandbox Code Playgroud)

这里使用选项(try/catch)添加jquery依赖项.我必须在此添加,NPM版本标记与GitHub - 1.1.2相同的版本.

为什么不同? 好像这已经成为问题一段时间了,发布了一些解决方法,比如在代码中添加这个:

$           = require('jquery');
Backbone    = require('backbone');
Backbone.$  = $
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个,虽然它有效,因为它是一种解决方法,似乎它"不存在".