-
Notifications
You must be signed in to change notification settings - Fork 667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gulpの見直し #4353
gulpの見直し #4353
Conversation
@katsunori-nakayama |
@katsunori-nakayama 遅くなりましたが動かしてみました。一通り問題なさそうです。 コマンドの実行例、 |
@chihiro-adachi |
@katsunori-nakayama
そうですね。将来的にはその形でもよいかと思います。 |
@chihiro-adachi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
以下のコマンドを確認して問題なく動作することを確認しました。
$ npm ci
$ npm run build
$ npm run watch
$ npm run watch:min
$ npm run server
$ npm run server:min
すごく便利ですね。
うっかりBootstrapのバージョンアップを行っていたようなので、バージョンを戻しました。 |
ありがとうございます。 |
説明長いですがご確認ください。
概要(Overview・Refs Issue)
gulpを4系にバージョンアップ
3系でも問題ないが、折角なので高機能な4系にバージョンアップ
バージョンアップに合わせた記述方法の見直し。ES6に書き方を統一。
バージョンアップにより高速化、並列処理が可能になった。
npm scriptの見直し
同じgulpコマンドが冗長に記述されていて、実行される内容が把握しにくかったので整理、機能追加による追記。
名前も分かりやすく、入力しやすいよう考慮。
gulp task = npm script
になるようにした。npmの見直し
利用されていないパッケージが含まれていたため、削除。
新たに追加したパッケージはなるべく手入れされているものを選択。
gulp機能の追加『監視』
終了コマンドはMac:
command + c
, Windows:ctrl + c
開発をする際にコマンドを叩きながら確認をするのが大変だったので、ソースコードを監視する機能を追加。
ファイルに変更があれば
task
が実行される。gulp機能の追加『監視 + ローカルサーバー』
終了コマンドはMac:
command + c
, Windows:ctrl + c
監視機能に加えて、ライブリロードを追加。
これによりいちいちブラウザを更新する手間がなくなる。
default以外のテンプレート名に対応
admin, defaultしか対応していなかったので(手動での追加は出来た)、新たに追加したものもコンパイルされるように修正。
ディレクトリ変更に耐えられるように修正
新たに
gulpconfig.js
を追加しました。configでルートを指定出来るように修正。
これにより、デフォルトとは違うディレクトリ構造の環境でも耐えられるようになりました。
gulpfileを分割しやすいように設計
まだタスクがsassだけなので良いが、jsやimgなど増えた場合の事を考え、ファイルを分割できように各タスクをモジュール化。
gulp minify-cssの問題を修正
.css
を作成した後でないと、正しいファイルが出力されない。コマンドを統一化することにより対処。
メディアクエリ問題を修正
#4191 をfix
値の小さいメディアクエリから順になるようにソートした。
方針(Policy)
コメント
コードは見やすく書いたつもりだが、ぱっと見でタスクの内容が把握出来ないのでコメントを記載。
gulpfileを分割するようになればこの程度のコメントなら不要かもしれない。
npm scriptの見直し
既存の
npm script
をフォールバックとして残そうかと思ったが、コマンドが増えすぎて利用すべきコマンドが分かりにくくなるのを避けるため、不要なコマンドを削除した。npmの見直し
bootstrap
にアップデートがあることの警告が出ているが、確認作業が大変なことになるのでアップデートせず。実装に関する補足(Appendix)
改善点
user_dataの見直し
/html/user_data
はscssをコンパイルしないが、scssを用意にコンパイル出来る環境になったので、/html/user_data
を各テンプレート内に作成してもらったほうが良いかもしれない。例:
/html/template/default/assets/scss/customize.scss
などにする。関連:#4071
注意点
node.jsのバージョン
gulpを4系に上げたことにより、ある程度新しいnode.jsが求められるので、node.jsのバージョンアップが必要な場合もある。
グローバルgulpを導入し、gulpコマンドを直接実行していた場合は、バージョン違いにより実行出来ないため、
npm script
を利用すること。ローカルサーバーURL, gulpconfig.js
ローカルサーバーのURLは個人によって違うため、
gulpfile.js
に含めたくなかった。(git管理が出来なくなるため)そのため
gulpconfig.js.sample
をgulpconfig.js
に変更し、module.exportsのserverを変更する必要がある。gulpconfig.js
はgitignore済み。gulpconfig.js
を作成しないと以下コマンドは利用できない。gulpconfig.js
が存在しないときに実行するとエラーを表示するようにした。gulpconfig.js
が存在しない場合でも、上記コマンド以外はデフォルトのディレクトリ構造でフォールバックしているため、実行可能。問題点
コンフリクト問題
npm script
を分かりやすくするため、minファイルも同時に出力しているため、既存の問題 #4332 に加え.min.css
もコンフリクトを起こすようになる。mapファイルの出力場所
base
を使ったディレクトリ指定によるsourcemapの不具合?仕様?により、maps
ディレクトリ内にsourcemapを出力することが出来なかった。利用方法
モジュールの更新
追加、削除したモジュールを更新する
gulpconfig.jsを作成する。
gulpconfig.js.sample
をgulpconfig.js
にリネームする。gulpconfig.js
のサーバーを自身のローカルサーバーのURLを指定する。ディレクトリ構造に変更がある場合は
paths
を変更する。(通常は不要)コマンド
相談(Discussion)
全ての
scss
をすべてのコマンドで.min.css
を出力するにしたので、.min.css
を標準で利用するのはどうでしょうか?(軽いのでクライアントに優しいそうすれば
.css
を利用するのはsassを利用できない人だけになります。sassを利用できない人には
npm script
は不要なので、package.json
がもう少しスッキリ出来ます。さらにgulpが高速化出来ます。マイナーバージョン互換性保持のための制限事項チェックリスト
レビュワー確認項目