2

couchdb 1.2.xを使用していますunderscorejsが、リストで使用しようとしていますが、成功しません。

これが私が進める方法です:

function(head, req) {
  var _ = require('vendor/underscore/underscore');
  log(_);
}

couchdbログを見ると、それvar _が未定義であることがわかります。また、underscorejsログには次のように書かれています。

1.3.0 — 2012年1月11日
アンダースコアからAMD(RequireJS)サポートを削除しました。RequireJSでアンダースコアを使用する場合は、通常のスクリプトとしてロードするか、コピーをラップまたはパッチするか、フォークバージョンをダウンロードできます。

どうすればよいか正確にはわかりません。手がかりはありますか?

ありがとう

4

3 に答える 3

1

ログのエラーメッセージに示されているように、Underscore.jsはAMDモジュールとしてすぐにフォーマットされなくなりました。考えられる解決策は2つあります。シムするか、AMD化されたアンダースコアを使用するかです。

シム:

シムは必要なAMDボイラープレートでアンダースコアをラップし、比較的透過的であるため、変更されていないバージョンの_を使用できます。

あなたの場合は簡単です。requireJSを次のように構成します。

require.config({
  paths: {
    underscore: "vendor/underscore/underscore"
  },
  shim: {
    underscore: {
      exports: '_'
    }
  }
});

注:便宜上、アンダースコアのパスエイリアスも定義しましたが、シムを機能させる必要はありません。

AMD-ify:

アンダースコア(およびバックボーン)のAMD化バージョンは、requireJSの作成者によって次の場所で管理されています:https ://github.com/amdjs/underscore

于 2012-08-05T17:42:35.937 に答える
1

couchdbリスト関数を作成しようとしているようです。これが私がアンダースコアを引いた方法です。これはすべてcoffeescriptにあります...

私の設計ドキュメントでは、ライブラリをインポートして宣言し、それをリスト関数からプルします。

designDoc =
  ...
  lib:
    underscore: "<actual underscore code as a string>"
  ...
  list:
    listFunction: "<list function as a string, see below>"
  ...

リスト関数自体では:

(head, req) ->
  _ = require 'lib/underscore'
于 2012-08-31T18:11:04.103 に答える
1

私が持っている唯一の提案は、ドロップイン代替Lo-Dashを使用することです。

とりわけ、AMD ローダーのサポートを提供する場合。

于 2012-08-05T14:51:17.543 に答える