0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jekyllでビルドするファイルを別ディレクトリに入れて不要なファイルの公開を防ぐ

Posted at

デフォルトでは、Jekyllはプロジェクトルートにあるファイルなら(特殊な意味を持つファイルでない限り)なんでもビルドしようとする。

my_jekyll_site
|- GemFile  // safe
|- GemFile.lock  // safe
|- _config.yml  // safe
|- .gitignore  // safe
|- index.md  // BUILT
|- _posts  // BUILT (日時等が解釈されてから)
 |- ...

このやり方には1つ問題がある。例えばここにスクリプトファイルを置くと、そのファイルはビルド時にサイトに含まれてしまう。

my_jekyll_site
|- Gemfile
|- ...
|- script.sh  // OOPS?!!?!?!?!?!?

スクリプトを置きたい理由は複数考えられる。例えば:

  • ビルドの自動化スクリプトや
  • Yarnでwebpackするときなどの設定ファイル
    などである。

もちろん_config.ymlファイルのexcludeキーで取り除くこともできるのだが、denylist型のこの設定はメンテが面倒で、知らない間に公開したくないファイルを公開してしまうことになりかねない。

_config.yml
exclude: ["webpack.js"]

実は、もっといいやり方がある。

sourceキー

このキーを設定しておくと、Jekyllはプロジェクトルートの代わりに指定されたディレクトリの中身をビルドするようになる。(なぜ公式のスケルトンにこの設定が書かれていないか疑問)

_config.yml
source: "_src"

この例では、全ての関連ファイルを_srcディレクトリに入れると問題なく動く。こうすれば、ビルド時にだけ必要で公開する必要のないファイルをプロジェクトルートにおいても問題ない。もう exclude キーをメンテしなくて良くなる。

一点注意が必要なのがwebpackなどだ。webpackの出力先も_srcに向けないとおかしな結果を招くので注意だ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?