次の JavaScript ファイル構造を持つ Rails アプリがあります。
- assests/javascripts
- /application
- module1.js
.
.
.
- moduleN.js
- application.js
各ファイルは次のようになります。
var module1 = (function(){
//Lots of code
return {
//Public stuff
}
})();
モジュールは相互にアクセスする必要があるため、いくつかのものを公開します。
アプリケーション.js
//= require_tree ./application
すべてのコードを匿名関数にコンパイルする方法があるかどうか疑問に思っています。何かのようなもの:
(function(){
//= require_tree ./application
})();
これは明らかに機能しません。私が現在行っていることは次のとおりです。
アプリケーション.js
//= require ./begin.js
//= require_tree ./application
//= require ./end.js
begin.jsはちょうど(function(){
、end.jsは})();
です。
最もきちんとした解決策ではありません。
これにより、グローバル変数が削除されるだけでなく、コンパイラがその名前を短い名前に変更して、コードを軽くして読みにくくすることができます。私はコードの機密性に関心があり、リバース エンジニアリングをより困難にするために、モジュール名を公開したくありません。