8

私が持っている私のgrunt.jsファイルで

requirejs: {
    dist: {
        options: {
            almond: true,
            wrap: true,
            modules: [{name: 'main'}],
            mainConfigFile: "src/js/main.js",
            baseUrl: "src/js",
            dir: "tmp/js",
            inlineText: true,
            preserveLicenseComments: false
        }
    }
}

実行すると、いくつかの縮小されたファイルgrunt requirejs:distがディレクトリに入力tmp/jsされます-とりわけ、大きな main.js ファイル(すべてが期待どおりにこのファイルにバンドルされているようです)-ただし、このファイルをそのように含めたい場合

<script type="text/javascript" src="tmp/main.js"></script>

その結果、"Uncaught ReferenceError: define is not defined"

require.jsアーモンドを使用する背後にある意図は、最適化されたファイルをロードするためにファイルをロードする必要がないということでした-これを機能させる方法はありますか?

脚注:以前にファイルがコンパイルされたことを除いて、私はすでにこの方法でそれを行うことができましたがmain-built.js、これはもうそうではないようです(更新... -.-)

4

1 に答える 1

2

そこで、次のファイルとフォルダーで空のディレクトリをセットアップしようとしました

/grunt.js
/src/js/main.js
/tmp/js

ここに私のgrunt.jsがあります:

module.exports = function(grunt) {

    grunt.loadNpmTasks("grunt-requirejs");
    grunt.initConfig({
        requirejs: {
            dist: {
                options: {
                    almond: true,
                    wrap: true,
                    modules: [{name: 'main'}],
                    mainConfigFile: "src/js/main.js",
                    baseUrl: "src/js",
                    dir: "tmp/js",
                    inlineText: true,
                    preserveLicenseComments: false
                }
            }
        }
    });

    grunt.registerTask("default", "requirejs");
};

ここに私のmain.jsがあります:

define(function() {
    console.log('hi');
});

コンソールで次のコマンドを実行しました。

npm install grunt
npm install requirejs
npm install grunt-requirejs
grunt --gruntfile grunt.js

Grunt はこれを出力します:

Running "requirejs:dist" (requirejs) task
>> RequireJS optimizer finished
Uncompressed size: 14234 bytes.
Compressed size: 1265 bytes gzipped. (2633 bytes minified)

/tmp/js/main.js の結果のファイルには、アーモンドへの参照が含まれていました。ただし、js が最小化されていたため、define 関数については言及されていませんでした。への呼び出しdefine(は に書き換えられましたn(

define を呼び出す最小化されたファイルの外にコードがあると思われます。

また、私の他のプロジェクトでは、私の mainConfigFile は構成ファイルとしてのみ参照され、モジュールとして読み込まれません。

于 2013-06-16T00:04:50.380 に答える