プロジェクトの FUBAR ディレクトリ構成により、そのプロジェクトの JS スクリプトを再編成するのに時間を費やしました。このプロジェクトはrequirejsを使用しており、再編成前は素晴らしく機能していました。ただし、呼び出し時に何もロードされず、実行時にコンパイル (r.js オプティマイザーを使用) されませんが、コンパイルは問題なく完了します。私はチェック、ダブルチェック、トリプルチェックを繰り返し、そして今、スタックオーバーフローについて別の目を求めることに屈しました。
RequireJS の使用: 2.1.4 および r.js 2.1.4
以下は私の構成です:
build-js.js (オプティマイザに使用)
var requirejs = require('requirejs');
var config = {
baseUrl: './public/js',
mainConfigFile: './public/js/config/config.js',
paths: {
'requireLib': 'library/require'
},
out: ".public/js/minified/main.js",
name: "minified/main",
wrap: false,
preserveLicenseComments: false,
deps: ["app/main","modules/movie","modules/theatre"]
};
requirejs.optimize(config);
config.js
// Set the require.js configuration for your application.
require.config({
paths: {
// JavaScript folders
libs: "library",
plugins: "plugin",
app: "app",
adminlibs: "../adminassets/js/plugins/ui",
// Libraries
jquery: "library/jquery",
jqcookie: "library/jquery.cookie",
jqui: "../adminassets/js/plugins/ui/jquery-ui-1.10.0.custom.min",
jqezmark: "library/jquery.ezmark",
jqcolor: "library/jquery.color",
underscore: "library/underscore-amdjs",
backbone: "library/backbone-amdjs",
chosen: "library/chosen.jquery",
moment: "library/moment",
// Site Components
site: "app/site",
sitediscussion: "app/site-discussion",
namespace: "app/namespace",
// Plugins
text: "plugin/text",
async: "plugin/async",
use: "plugin/use",
datetimepicker: "../adminassets/js/plugins/ui/jquery.datetimepicker",
ajaxfileupload: "../adminassets/js/plugins/uploader/jquery.ajaxfileupload"
},
shim: {
'chosen': ['jquery'],
'jqcookie': ['jquery'],
'jqui': ['jquery'],
'jqezmark': ['jquery'],
'jqcolor': ['jquery'],
'site': {
deps: ['jquery','jqezmark','chosen','underscore','namespace','jqui','jqcookie'],
exports: 'site'
},
'sitediscussion': {
deps: ['jquery', 'underscore'],
exports: 'sitediscussion'
},
'jquifull' : ['jquery'],
'datetimepicker' : ['jqui'],
'ajaxfileupload' : ['jquery'],
'backbone': ['underscore','jquery']
},
// Initialize the application with the main application file
deps: ["app/main"]
});
ファイル構造は次のとおりです。
{サイトルート}/public/js
ディレクトリが含まれています:
アプリ構成ライブラリの縮小されたモジュール プラグイン テンプレート
上記の build-js および config.js にリストされているすべてのファイルは、予期されたフォルダーにあることが確認されています。
requirejs は次のように呼び出されます。
開発マシン (現在セットアップをテストしています):
data-main="/js/config/config" src="/js/library/require.js"
本番環境 (現在、縮小/メイン ファイルは作成されていませんが、作成されるはずです)
data-main="/js/minified/main" src="/js/library/require.js"
誰かが私が間違っているかもしれないことを見ることができますか? ここでも、上記の 2 つのファイル (build-js.js と config.js) を除いて、サイト本体や JavaScript などに変更はありません。唯一の変更点は、ディレクトリ構造内でファイルが物理的に移動されたことです。その結果、どこかにパスの問題があることはほぼ確実ですが、それを見つけることができないようです。ヘルプ?