1

requirejs オプティマイザーを使用しようとしていますが、次のエラーが発生します。

ノードから実行:

$ node r.js js/main.js -o build.js
Error: Evaluating js/app/main.js as module "app/main" failed with error: 
Error: Evaluating js/lib/jquery-1.8.0.js as module "jquery" failed 
with error: ReferenceError: window is not defined

Javaから実行

$ java -classpath js/lib/dist/js.jar:js/lib/dist/compiler.jar org.mozilla.javascript.tools.shell.Main r.js js/main.js
js: uncaught JavaScript runtime exception: ReferenceError: "window" is not defined.

js: uncaught JavaScript runtime exception: ReferenceError: "window" is not defined.

js: uncaught JavaScript runtime exception: ReferenceError: "window" is not defined.

どうにかして、ソースが Web ブラウザーから実行されることが想定されていることをコンパイラーに伝える必要があると思います (単なる推測です)...

4

2 に答える 2

0

構成ファイルを次のように設定しました。

require.config({

    paths: {
        jquery: 'lib/jquery',
        backbone: 'lib/backbone',
        backboneLocalStorage: 'lib/backbone.localStorage',
        underscore: 'lib/underscore',
        util: 'lib/util',
        config: 'config',
        lang: 'lang',
        hammer: 'lib/hammer',
        moment: 'lib/jquery_plugins/moment',
        slider: 'lib/jquery_plugins/slider'
    },
    shim: {
        jquery: {
            exports: 'jquery'
        },
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: ['underscore'],
            exports: 'Backbone'
        },
        hammer: {
            deps: ['jquery'],
            exports: 'Hammer'
        },
        slider: {
            deps: ['jquery']
        },
        moment: {
            deps: ['jquery']
        }
    }
});

そして、私は変わらなければなりませんでした

jquery: {
            exports: 'jquery'
        },

jquery: ['jquery'],

それは私のために働くようでした。

于 2014-01-08T10:00:04.950 に答える
0

私は同じ問題に遭遇しました。コンポーネントの jquery 依存関係を削除するだけで解決します。

何かのようなもの define(['jquery'], function GoogleMapsLoader($) {

に置き換える必要があります

define(function GoogleMapsLoader() {

これを読むと役立つはずです。

于 2015-09-20T23:58:52.857 に答える