-1

これは私のconfig.jsファイルがどのように見えるかです:

require.config({
    baseUrl: '../',
    paths: {
        jQuery:            'js/jquery-1.10.2.min',
        uiEffectsCore:     'js/jQueryUIEffectsCore',
        //Handlebars:        'js/handlebars',
        SyntaxHighlighter: 'js/syntaxhighlighter/scripts/shCore',
        shXml:             'js/syntaxhighlighter/scripts/shBrushXml'
    },
    shim: {
        jQuery: {
            exports: 'jQuery'
        },
        uiEffectsCore: {
            deps: ['jQuery']
        },
        shXml: {
            deps: ['SyntaxHighlighter']
        }
    }
});

require(['js/main']);

次に、私の main.js は次のようになります。

define(function(require){

    require('jQuery');
    require('uiEffectsCore');
    require('SyntaxHighlighter');
    require('shXml');

});

問題はdefine(...)、shXml ファイルの周りにラッパーがないことだと思います...そのラッパーを使用せずにこれを機能させることができるかどうか疑問に思っています。多分輸出シムがそれをするでしょう。

現状では、毎回このエラーが発生します。

この質問は、こちらの github にも寄せられています。

4

1 に答える 1

1

この記事も github からチェックしてください。これをテストしたところ、うまく機能しましたが、brush.js ファイルの最初の行 (syntaxhighlighter 内) を次の行に置き換える必要があります。

SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);

なぜ問題が解決するのかさえわかりませんが、問題は解決し、次のようにスクリプトをロードできます。

define(function(require){

    require('jQuery');
    require('uiEffectsCore');
    require('SyntaxHighlighter');
    require('shXml');
    require('shCss');
    require('shJs');
    require('Raphael');

そして、依存関係のために設定に shim が必要です:

 paths: {
        SyntaxHighlighter: 'js/syntaxhighlighter/scripts/shCore',
        shXml:             'js/syntaxhighlighter/scripts/shBrushXml',
        shCss:             'js/syntaxhighlighter/scripts/shBrushCss',
        shJs:              'js/syntaxhighlighter/scripts/shBrushJScript'
    },
    shim: {
        shXml: {
            deps: ['SyntaxHighlighter']
        },
        shCss: {
            deps: ['SyntaxHighlighter']
        },
        shJs: {
            deps: ['SyntaxHighlighter']
        }
    }
于 2013-08-07T01:30:17.323 に答える