私はjqueryプラグインを書いています。プラグインには多くのコードが含まれているため、コードをいくつかのファイルに分割し、require.js を使用することにしました。私は2つのことを達成しようとしています:
- 分離されたバージョンのプラグインで require.js を使用してテスト ページを実行する機能。これにより、コードをデバッグできます。
- require.js オプティマイザー (r.js と呼ばれる) を使用し、それらのいくつかのプラグインのファイルから最適化された (結合および縮小された) 1 つのファイルを作成する機能。
私の index.html には以下が含まれます:
<script data-main="js/site" src="js/vendor/require.js"></script>
私のjs/site.jsには以下が含まれています:
require([
'jquery',
....
....
'main' //<---- main plugin file
], function($) {
$(function() {
$('#elem').photosGrid();
});
});
そして私の main.js ファイルには以下が含まれています:
define([
'photos-grid' //<---- Class that initialized and build the plugin
], function(PhotosGrid) {
jQuery.fn.photosGrid = function(options) {
var photosGrid = new PhotosGrid(this, options);
this.data('photosGrid', photosGrid);
return this;
};
return jQuery;
});
r.js を構成するために、build.js ファイルを追加しました。
({
baseUrl: '.',
name: "main",
out: "main-built.js"
})
index.html を実行すると、プラグインがうまく機能します。しかし、実行するnode r.js
と次のエラーが発生します。
Error: Mismatched anonymous define() module
名前を付けて main.js を定義すると、次のようになります。
define('module-name', ['photos-grid'], function(PhotosGrid) { .....
node r.js
エラーは返されませんが、出力は出ません。さらに、index.html は main.js ('photos-grid') の依存関係を読み込まないため、Web サイトが機能しません。
私は何を間違っていますか?r.js を適切に使用するにはどうすればよいですか?