質問: ### 前提・実現したいこと vscode(mac)でejsファイルをコーディングしながらフォーマットしたい。 #### 質問内容 gulpでejsを使って静的ページをコーディングしています。 最近macのosをタイムマシンを使ってない中、クリーンインストールしたせいで 各種環境が以前と微妙に違っていて戸惑う毎日です・・ (今ではタイムマシン設定しました) prettierを使って、保存時に各種データのコードフォーマットするようにしているのですが、 ejsのパーツファイルであるheader.ejsを保存すると、 ファイル内ではhtmlやbodyタグはまだ閉じないのが求める形なのですが、 prettierが勝手に閉じタグを補完してしまいます。 ``` aaaa ``` となってるものが、 ``` aaaa ``` と、不要な閉じタグを補完されてしまいます。 footer.ejsというファイルでhtmlやbodyタグなどは閉じているので、最終的に二度閉じていることになり、表示も崩れてしまいます・・ 出力時にフォーマットをかければいいだけの話かもしれませんが、 コーディング時もある程度フォーマットできたらいいな、と思ってます。 1:ejsファイルにおいて閉じタグ補完機能を切ることができるならばその方法。 2:上記個別対応ができないならばejsファイルのコードフォーマットだけを切る方法があればその方法。 3:何かejsファイルのコーディング時のフォーマットでいい方法があればその方法。 上記についてわかる方いらっしゃれば、お知恵いただけませんでしょうか? よろしくお願いいたします。
回答: こんにちは。 EJSは全く詳しくないのですが、一般的に、テンプレート言語を用いたテンプレート化/パーツ分割を真っ当にやるなら、パーツは開きタグと閉じタグで囲まれた一つのノード単位にするものだと思います。 `header.ejs`という名前が付いていたら、普通に考えたら`...`で囲まれた一要素が入っているとイメージしてしまいます。 分割するのは、「そのパーツを再利用する」という大前提があるはずで、文書構造に満たない固定された一記述を別ファイルに分割したところで、それは決して再利用することが不可能であり、パーツ化する意味が全くないものです。例えば、後から「headerの前に〇〇を置きたい」などの要件が上がってくる場面を想像してみて下さい。 もしも、ejsがそのような運用を推奨しているもので、実際にそのようなやり方が解説されているというのであれば、この回答は忘れて下さい。