2017-08-05 10 views
1

NetlifyでHugoサイトを展開するのに問題があります。展開前にWebpackを使用して静的資産(SassとJS)をコンパイルし、ページを生成する前にhugoが読む必要があるキャッシュ破棄のためのハッシュを生成します。したがってyarn run buildは、hugoが呼び出される前に実行を終了する必要があります。しかし、これはNetlifyの展開ログから判断されるようには見えません。Netlify:ビルドタスクをシリアルで実行するには?

答えて

2

yarn run buildというWebpackタスクが完了してhugoを呼び出す前に、Gulpのようなパイプラインビルドツールを追加することをお勧めします。は、この設定を使用します。抜粋され、それは次のようになります。パッケージpackage.json

buildコマンドを呼び出すように定義されてgulp build

"scripts": { 
    ... 
    "build": "gulp build", 
    ... 
    } 

これはで、三つのサブタスクのセットとしてbuildタスクを定義gulpfile.babel.jsを、トリガ注文:

これらのサブタスクは、gulpファイルでも定義されています。この場合、cssはPostCSSを実行するように定義され、jsはWebpackを実行するように定義されています。ファイルの先頭に必要なプラグインをインポートして、アセットパイプラインに合わせてこれらを定義します。

hugoタスクの場合、Victor HugoにはHugoバイナリがリポジトリに直接組み込まれているため、移植性が向上します。あるいは、this exampleの後にgulp-shellプラグインを使用して、hugoコマンドをシェルで実行することもできます。

+0

キャッシュバスト処理が必要と思われる理由についてもお聞きします。キャッシュのディレクティブをデフォルト値を上書きして変更しない限り、Netlifyはキャッシュの無効化を処理します。 https://www.netlify.com/blog/2017/02/23/better-living-through-caching/には方法が記載されています。 – fool

+0

私は開発のためのWindowsユーザーの場合に使用するシェルを制限しないので、これはより良い解決策/答えだと思います。 – talves

+0

@foolこのケースでキャッシュバスト処理の意味を説明できますか – talves

4

免責事項:私はnetlifyで働いています。

ジェシカの答えは、あなたのユースケースのほうがはるかに優れていますが、一般的にgulp/grunt/makeのようなツールを使用していないとします(ビルド環境のオプションは "Linuxで動けるもの" https://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/)は、あなただけ一緒にコマンドをチェーンすることができます

yarn run build && hugo 

「& &」チェーン・コマンドを使用してください - これが唯一のシリアルそれらを実行しません、それはまた、糸の実行ビルドで問題が発生しますことを保証しますとにかくhugoを実行するのではなく、失敗とマークするビルドを作成し、

を使用すると起こるような壊れたビルドを公開する可能性があります
yarn run build ; hugo 
+0

'糸走行ビルド&& hugo'は私が持っている正確なコマンドですが私はまだ上記の問題に遭遇しています。 –

+0

@ ErikBerkun-Drevnigそれから他の何かが間違っている可能性があります。申し訳ありませんが、私はこの時点では表示されませんでしたが、サポートはこれをデバッグするのに役立ちます。 – fool

関連する問題