新しいM2プロジェクトを開始するとき、最初に行うことは、composerを使用してコアをインストールすることです。
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
これで、カスタムモジュールとテーマをで作成できますapp/code。次に、VCSにフォルダーcomposer.*全体を追加しapp/codeます。これまでのところ、すべてが正常です。
ここで、プロジェクトにいくつかのビルドツールを使用したいとします。GruntまたはGulpとしましょう。
自分でコミット
Gruntfile.jsすると、リポジトリを複製した後にmagento/magento2-base実行すると、パッケージによって上書きされますcomposer install。私は私をコミットした場合
gulpfile.js、私は本当に私の中で依存関係を定義することはできませんpackage.json、それはまたによって上書きされるため、magento/magento2-base。MagentoのGruntセットアップを使用し、
/dev/tools/grunt(たとえばthemes.js)の下のファイルを編集してカスタマイズしたい場合、変更がによって上書きされるため、できませんmagento/magento2-base。
私の理解では、ドキュメントルートではそれほど多くのことはできないということです。もちろん、この問題には多くの解決策があります。
git checkout -インストール直後に実行して自分のファイルをリセットできました/buildたとえば、ビルドファイルを専用フォルダーに保存できます。- Phing、Ant、Rakeなどの別のビルドツールを使用できます(ただし、フロントエンドの開発者はそれほど満足しません)
magento/magento2-baseコアファイルのカスタムマッピングを持つカスタムパッケージに置き換えることができます(実際には最適ではありませんが、オプションです)
私は個人的にこれらのオプションをすべて嫌うので、私がやろうとしていることを達成するための好ましいまたはより良い方法があるかどうか知りたいです。
誰も同じ問題を抱えていますか?どのように解決しましたか?VCSでプロジェクトをどのように構成しますか?
更新
プロジェクトのセットアップに関連する追加のポイント。私の実験では、Magento composerインストーラーがファイルオーバーライドのフラグを持っていることに気付きました。
"extra": {
"magento-force": "override"
}
間違っていない場合は内部的にブール値として扱われるため、falseオーバーライドをスキップするように設定しようとしました。composer installファイルが既に存在するため、インストールを実行すると失敗します。基本的に、Magentoにファイルを上書きさせない場合、インストールできません。
このフラグの目的は何ですか?私のためにチェックを実行することだけを想定していますか?正直に言うとあまり意味がありませんが、誰かが主題に光を当てることができるかもしれません。
Gruntfile.js、gulpfile.jsとのpackage.json問題は解決されています。問題は、この問題に対処しますが、変更する必要がある場合、まだ新しいMagentoの2バージョンに適用可能でありthemes.js、index.phpまたは.htaccess例えば。