4

私は初めてjspmを使用していますが、すでに問題が発生しています。

当社のプライベート npm レジストリに存在する独自のスクリプトを「シム」する方法を理解する必要があります。

パッケージ:widget

  • プライベート npm レジストリに常駐
  • CommonJS、UMD/AMD モジュールではありません
  • lodashおよびに依存しjqueryますが、グローバル スコープに存在することを前提としています
  • Widgetグローバルスコープで公開

これが(架空の)コードです

var Widget = {
  render: function(el, symbol) {
    symbol = _.trim(symbol);
    $(el).text(symbol);
  }
};

app.js

var widget = require("Widget");
widget.render(document.getElementById("name"), " Fred ");

index.html

<body>
  <div id="name"></div>

  <script src="jspm_packages/system.js"></script>
  <script src="config.js"></script>
  <script>
    System.import("app");
  </script>
</body>

このページをローカル Web サーバーで実行すると、次のエラーが表示されます。

キャッチされていない参照: _ は定義されていません

に「シム」を提供するにはどうすればよいwidgetですか?

4

1 に答える 1

0

あなたの最善の策は、Widget パッケージの package.json を更新できる場合、そこに shim が必要であることを JSPM に伝えることができるということです。

{
  "shim": {
    "widget": { "deps": ["jquery", "lodash"] }
  }
}

(「widget」はパッケージ内のモジュール名です。)

なんらかの理由でその npm パッケージに直接アクセスできない場合は、jspm をインストールするときに shim 情報をオーバーライドできます。

jspm install widget -o "{ shim: { 'widget': { deps: ['jquery', 'lodash'] } } }"

(ここでも、'widget' はモジュール名であり、パッケージ自体の内部に対してローカルです。)

于 2015-06-13T22:35:58.987 に答える