2019年03月08日
Nuxt.jsのhooksを利用してビルド時にファイルを生成する
Nuxt.jsを触っていると何かのタイミングでビルド時にファイルを生成したくなる場合があります。(あんまりないかも…)
今回は「package.jsonに書かれたバージョン番号をビルドしたdistディレクトリの中にVERSION.TXT
として含めたい。」という感じでした。
この場合Nuxtのhooksの機能をうまく活用すると、ビルド時にバージョン番号を記載したテキストファイルを生成することが出来ます。
nuxt.config.jsの設定
今回は以下の通りに設定しました。
hooksにはいくつかあるのですが、ファイル生成が全て終わったタイミングでVERSION.TXT
を生成したかったのでgenerate:done
のタイミングで実行するようにしてあります。
import { version } from './package.json'
import fs from 'fs'
import path from 'path'
export default {
hooks: {
generate: {
done(builder) {
const versionFile = path.join(
builder.nuxt.options.generate.dir,
'VERSION.txt',
)
fs.writeFileSync(versionFile, version)
console.log('Write: ', versionFile)
},
},
},
}
最後に
hooksを使うヒントというか答えをくれた@nakajmg大先生に感謝しています。