閉じる

UI言語[UI Language]

記事自体は翻訳されません! 記事によって英語版があったりなかったりします。翻訳がある記事は文頭に記載があるよ!
Each articles themselves will not be translated by this setting. Some of article has translation and some of them doesn't. You will notice if the article has its translation by its preamble!

テーマ[Theme]


アイキャッチ画像

【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コマンドを実行したせいで、ファイルシステムが原因の模様。

FAT32、exFATなどのファイルシステムだと、最終更新日時を書き込む時にエラーが発生するようです。--noTimesオプションを付与することで無事書き出せるようになりました。

hugo --noTimes

なお、このオプションはHugoのコンフィギュレーションファイル(config.tomlとか)にも書き込めるので、常に有効にしたい場合は設定を追加(TOML形式ならnoTiems = true)しておけばhugoコマンドに都度オプションを指定する必要はなくなります。

が、上記ページのコメントにある通り、エラーメッセージで「ファイルシステムのせいですよー」とか--noTimesを試してみてねー」とか表示してくれるようになるといいですね……

なおこのオプションを使うと書き出されるファイルの更新日時が更新されなくなるので、FTPソフトなどファイル転送クライアントのアップロード機能で更新日時を比較してのアップロードが難しくなります。
もっともHugoで書き出したファイルは全部が全部コマンド実行した日付になってしまって、ファイル転送は常に一括転送みたいな状態なので、関係ないと言えば関係ないかも。

ちなみにこのトラブルに遭遇した背景なんですが、Windows、Macを含む複数のパソコンで同じプロジェクト(Hugoに限らず、Unity、Kicadなど何でも……)をいじりたいというのがあって。

ファイル共有だとオリジナルがあるパソコンは常にけておかないとだし、Unityなんかは共有フォルダ上のプロジェクトに対応しないし、自分しか使わないのにGitの共有リポジトリ的なものをネットワークドライブに作るのも大袈裟だし(ってか普通にGit素人には難し過ぎる)。それぞれのパソコンのローカルドライブにファイルが存在するのが一番簡単なんですが、かと言って作業するパソコンを変更するたびにファイル同期させるのも面倒くさい……

Dropboxがお手軽だったんですが、年間14,400円はなかなかの出費。いろいろ考えた挙げ句、USBメモリに入れて抜き差しするのが一番簡単なんじゃねと思って試してみたところ…… というわけです。うまくいかないもんですね~。
あとUSBメモリ使ってみてもう一つわかったのは、アクセス遅くて結構厳しい。はーもーDropboxと再びちぎりを交わすしか無いのか……

この記事のタグ[This article is filed under]: Hugo[Hugo] | 開発[Dev] | トラブル[Trouble] | HTML[HTML]


この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!

That's all for this article. Thank you for your reading.
Please share this if you like it!

Twitter | Reddit | Facebook | Pinterest | Pocket

前の記事[Prev Post]

前の記事のアイキャッチ画像

【超個人的】Chrome(とVivaldy)にとりあえず入れる拡張機能8つ

次の記事[Next Post]

次の記事のアイキャッチ画像

JavaScriptで簡単なソースコードの構文強調表示機能を自作した話