私は、最新のスクリプトのネームスペースに次のモデルを使用しています。これまでのところ、いくつかの明確な利点があり、他の方法で複製できると確信していますが、コーディング プロセスに本当に役立ちます。残念ながら、私は重大な欠点に遭遇しました... 一部の JS 圧縮ユーティリティを使用すると、コードがひどく壊れてしまうため、多くの有利なオプションを避ける必要があります。幸いなことに、このモデルで保存したコードは、「損害」を軽減するのに役立ちます。
min.js は Chrome/IE でのみ一貫して失敗するため、より実行可能な解決策があるかどうかを知りたいと思っています。以下は、一部の人にとっては少し抽象的すぎることを知っています。私を正しい方向に向ける専門家はいますか?YUI、Packer、JSMin を使用しました。JSMin は確実に動作しますが、それほど効率的ではありません...
/* Global Namspace */
(function (T) {"use strict";
/* Top.Sub1 */
(function(S1) {
// ... Some methods (public/private)
/* Top.Sub1.Mini */
(function(M) {
// ... Some methods (public/private)
}(S1.Mini = S1.Mini || function(o){}));
}
(T.Sub1 = T.Sub1 || function(o){}));
/* Top.Sub2 */
(function(S2) {
// ... Some methods (public/private)
/* Top.Sub2.Mini1 */
(function(M1) {
// ... Some methods (public/private)
}(S2.Mini1 = S2.Mini1 || function(o) {}));
/* Top.Sub2.Mini2 */
(function(M2) {
// ... Some methods (public/private)
}(S2.Mini2 = S2.Mini2 || function(o) {}));
} (T.Sub2 = T.Sub2 || function(o) {}));
} (window.Namespace = window.Namespace || function(o){}));
更新:私が直面する最も一般的なエラーは、さまざまな種類の「予期しないトークン」です..時には「)」、時には「}」です。時々、それは '(' です。邪魔にならないようにしたいので、gzip にはまだ対処していません。
更新 2: Tidied-jsHint を渡すファイルで ns をチェック/削除しましたが、まだ正しく縮小されません。それは間違いなくこのモデルに関係しています...理由について明確な答えを持っている人はいますか? そうでない場合は、さらなる推奨事項を歓迎します。PS Github は Tidied-jsHint パッシング コードで更新されました。