短縮版
YUIコンプレッサーのようなファイルコンプレッサーを使用する場合、開発時に圧縮ファイルをいじる必要がないように、Webサイトを展開するための適切な手順は何ですか?リリースプロセスの一部として圧縮スクリプトが必要ですか?
ロングバージョン
JSファイルとCSSファイルにYUIコンプレッサーを使用するプロジェクトに参加しました。私には、非常に悪臭がするように思われるコードのチャンクに遭遇しました。これを行うためのより良い方法があるかどうか疑問に思います。
コードで作業している間、開発者は非圧縮ファイルを自由に操作でき、Webサイトを引き続き機能させ、変更を反映させる必要があると思います。次に、変更されたcssファイルとjsファイルをリリース時に圧縮できます。それはそれがここに行く方法ではありません。
基本的に、コアphpページでPHP_SAPIをチェックし、コマンドラインの場合はコンプレッサーを実行します。これは、exec
onを実行しgit log
、次にいくつかのsed
魔法を実行して現在のリビジョン番号(cssおよびjsファイルバージョンとして使用される)を取得しproc_open
、yuicompressorを実行してファイルで実行し、さらに数exec
秒で新しいファイルを追加します。 git ...そして、いくつかのブードゥーがphpファイル自体に到達し(はい、それは自己変更型です)、$version
変数宣言を新しいリビジョン番号に変更します。この変数はinclude
、cssファイルとjsファイルを修正するために使用されます。
私が最初にリポジトリからコードをチェックアウトしたとき、Webサイトはローカルで実行されていましたが、cssはありませんでした。同僚から、上記の呪文を呼び出すシェルスクリプトを実行する必要があると言われました。これが成功するまでに、ファイルのアクセス許可を微調整するのに約30分かかりました。
これは私が思うほど悪いにおいがしますか?どうすればこれを開発ステップとして取り除き、開発中に通常の非圧縮ファイルを含めることができるようになりますか?現在のところ、上記のファイルに変更を加えてすぐに表示することはできません。リリース時にそれを行うことの問題は、ファイルが圧縮されるときにインクルードを圧縮ファイルに変更する必要があることです。コードを変更するスクリプトも必要になるようです。何か案は?