9

現在、楽しいサイドプロジェクトにrequire.jsを使用しています。prisme.jsと呼ばれるコード構文のハイライトプラグインを除いて、すべてが正常に機能しています。プラグインがChromeのネットワークタブを介してプルされていることがわかりますが、プラグインは初期化されていません。

それがrequireの問題なのか、それともプラグインが問題なのかわからないので、誰か助けてくれないかと思っていました。

これが私のmain.jsの外観です:

require.config({
  // 3rd party script alias names
  paths: {
    // Core Libraries
    modernizr: "libs/modernizr",
    jquery: "libs/jquery",
    underscore: "libs/lodash",
    backbone: "libs/backbone",
    handlebars: "libs/handlebars",

    text: "libs/text",
    prism: "plugins/prism",

    templates: "../templates"
  },
  // Sets the configuration for your third party scripts that are not AMD compatible
  shim: {
    "backbone": {
      "deps": ["underscore", "jquery", "handlebars"],
      "exports": "Backbone"  //attaches "Backbone" to the window object
    }
  }
});

// Include Specific JavaScript
require(['prism', 'modernizr', 'jquery', 'backbone', 'routers/router', 'views/AppVIew' ],
  function(Prism, Modernizr, $, Backbone, Router, App) {
    this.router = new Router();
    this.App = new App();
  }
);
4

3 に答える 3

11

シムセクションを変更してプリズムを含め、「プリズム」をエクスポートすることを確認します。

shim: {
  "backbone": {
      "deps": ["underscore", "jquery", "handlebars"],
      "exports": "Backbone"  //attaches "Backbone" to the window object
  },
  "prism": {
      "exports": "Prism"
  }
}
于 2012-11-01T00:08:57.677 に答える
3

ハンドルバーとPrismはAMD(Asyncronous Module Definition)と互換性がないため、以下のように自分でシムする必要があります。

requirejs.config({
    shim: {
        'backbone': {
            "deps": ["underscore", "jquery", "handlebars"],
            "exports": "Backbone"  //attaches "Backbone" to the window object
        },
        'handlebars': {
            "exports": 'Handlebars'
        },
        'prism': {
            "exports": "Prism"
        }
    }
});

require.jsshimのドキュメントサイトをご覧になることをお勧めします。 http://requirejs.org/docs/api.html#config-shim

これがお役に立てば幸いです

于 2013-05-23T04:50:46.627 に答える
1

プリズムも追加する必要がありshimます。バックボーンと同様に、AMDに準拠していないため、同じ方法で宣言する必要があります。

于 2012-10-31T23:30:24.770 に答える