6

プロジェクトのバージョン管理に git (GitHub 経由) を使用しています。私はまだこれに慣れていませんが、環境間cssjsファイルを同期させる方法のベストプラクティスを知りたいです。

例:js dev でスクリプトを書いたとしましょう。私は自分の仕事に満足しており、テストに取り組んでいます。テストでは、縮小/圧縮バージョンが必要です。多くのオーバーヘッドタスクなしでそれを達成するにはどうすればよいでしょうか? あなたたちは何をしますか?コードを圧縮して指定した環境にプッシュする、ある種のデプロイ スクリプトの一部であると想定しています。

これにより、別の質問が発生します。私のプロジェクト内の私のheader(および/またはfooter) ファイルはどうですか? 私devが持っている場合:

<link rel="stylesheet" href="<?php echo base_url(); ?>css/main.css">

そして私testingは持っています:

<link rel="stylesheet" href="<?php echo base_url(); ?>css/main.min.css">

これで問題ありませんが、ヘッダーを変更する必要がある場合はどうすればよいでしょうか? これらすべてを互いにどのように分離しますか?ヘッダーに変更を加えてテストまたは本番環境にプッシュすると.min、そのインクルード行から失われます。

現在、更新を展開するために私が行っていることは、git pull origin [branch]更新したい環境内のコマンドラインから簡単です。

繰り返しになりますが、必要な学習が何であれ、ベストプラクティスを探しています。ありがとう!

4

3 に答える 3

5

LESS や Sass などのプリプロセッサ ツールを確認することをお勧めします。これらのツールを使用すると、CSS を記述し (縮小する目的で JS も処理できる可能性があると思います)、環境に基づいてコードをコンパイルする方法を処理するスクリプトをセットアップできます。

次に、コードを「ソース」ファイルに記述し、プリプロセッサを設定して、設定ファイルに配置された設定に従ってコードをコンパイルします (Sass の場合、これは Compass フレームワークで簡単に実行できます)。次に、リポジトリにソース ファイルのみを保持し (コンパイルされたバージョンを無視するように Git を設定します)、サーバーでソース ファイルをコンパイルするための post-receive フックを設定します。その後、HTML を記述してコンパイル済みファイル (環境間で同じ名前にする必要があります) にアクセスできるため、コードが実行されている環境を毎回その場で決定するロジックを記述する必要はありません。

于 2013-03-20T15:04:00.327 に答える
1
  1. CSS、JS の縮小版をバージョン管理に入れないでください。それは重複しています。

  2. Git はデプロイで使用できますが、その目的はデプロイではありません。

  3. CSS タグを含めるのは簡単です。簡単なまとめは、フレームワークの環境変数を使用することです。私が知っているように、CodeIgniter にはこの機能があります。env == test の場合は縮小版を含め、そうでない場合は raw バージョンを含めます。

さらに、縮小版を自動的に生成するには、ビルド スクリプトまたはフレームワーク プラグインが必要です。

于 2013-03-20T15:07:45.220 に答える
1

通常、縮小されたファイルは、ページの読み込み時に CMS によって生成されます。したがって、コードの観点からは、すべてのコードが実際の js および css ファイルで追跡されるため、縮小版を追跡する必要はありません。そのため、縮小されたコピーは .gitignore ファイルを使用して無視できます。

私の .gitignore ファイルは通常次のようになります。

css-min            #directory to store generated minified css files
js-min             #directory to store generated minified js files
tmp                #directory to store temporary files
files/images/cache #directory for storing generated images such as thumbnails
settings.php       #File that stores system variables.

設定ファイルは、「dev」、「staging」、「production」などのプラットフォームなどのグローバル変数を設定するために使用されます。次に、他のファイルで、どの css/js ファイルを使用するかについてプラットフォームを確認できます。そのファイルはリポジトリによって無視されるため、各プラットフォームに固有の設定を行うことができます。

if ($GLOBAL['platform'] = PLATFORM_DEV) {
  $path = 'css/main.css';
}
elseif ($GLOBAL['platform'] = PLATFORM_STAGE) {
  $path = 'css-min/main.min.css';
}

<link rel="stylesheet" href="<?php print base_url(); print $path; ?>">
于 2013-03-20T15:06:51.340 に答える