【Hugo】書き出しエラー Error copying static files: chtimes
静的ウェブサイトジェネレーターHugoで、hugo
コマンド実行時にエラーが出て書き出せないトラブルに遭遇しました。エラーメッセージにはchtimes
がどうのこうの↓
Error: Error copying static files: chtimes H:\hugo\hugo-publish\: The parameter is incorrect.
結論としては、USBメモリなどのリムーバブルディスク上にあるHugoファイル群に対してhugo
コマンドを実行したせいで、ファイルシステムが原因の模様。
r - blogdown::serve_site, error copying static files - Stack Overflow
https://stackoverflow.com/questions/64069079/blogdownserve-site-error-copying-static-files
FAT32、exFATなどのファイルシステムだと、最終更新日時を書き込む時にエラーが発生する様《よう》です。--noTimes
オプションを付与することで無事書き出せるようになりました。
hugo --noTimes
なお、このオプションはHugoのコンフィギュレーションファイル(config.tomlとか)にも書き込めるので、常に有効にしたい場合は設定を追加(TOML形式ならnoTiems = true
)しておけばhugo
コマンドに都度オプションを指定する必要はなくなります。
Error on Windows with FAT32 · Issue #6127 · gohugoio/hugo · GitHub
https://github.com/gohugoio/hugo/issues/6127
が、上記ページのコメントにある通り、エラーメッセージで「ファイルシステムのせいですよー」とか「--noTimes
を試してみてねー」とか表示してくれるようになるといいですね……
なおこのオプションを使うと書き出されるファイルの更新日時が更新されなくなるので、FTPソフトなどファイル転送クライアントのアップロード機能で更新日時を比較してのアップロードが難しくなります。
もっともHugoで書き出したファイルは全部が全部コマンド実行した日付になってしまって、ファイル転送は常に一括転送みたいな状態なので、関係ないと言えば関係ないかも。
ちなみにこのトラブルに遭遇した背景なんですが、Windows、Macを含む複数のパソコンで同じプロジェクト(Hugoに限らず、Unity、Kicadなど何でも……)をいじりたいというのがあって。
ファイル共有だとオリジナルがあるパソコンは常に点《つ》けておかないとだし、Unityなんかは共有フォルダ上のプロジェクトに対応しないし、自分しか使わないのにGitの共有リポジトリ的なものをネットワークドライブに作るのも大袈裟だし(ってか普通にGit素人には難し過ぎる)。それぞれのパソコンのローカルドライブにファイルが存在するのが一番簡単なんですが、かと言って作業するパソコンを変更するたびにファイル同期させるのも面倒くさい……
Dropboxがお手軽だったんですが、年間14,400円はなかなかの出費。いろいろ考えた挙げ句、USBメモリに入れて抜き差しするのが一番簡単なんじゃねと思って試してみたところ…… というわけです。うまくいかないもんですね~。
あとUSBメモリ使ってみてもう一つわかったのは、アクセス遅くて結構厳しい。はーもーDropboxと再び契《ちぎ》りを交わすしか無いのか……
この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!
That's all for this article. Thank you for your reading.
Please share this if you like it!