Nuxt.jsのhooksを利用してビルド時にファイルを生成する

March 8, 2019,
tags: nuxt vuejs


このエントリーをはてなブックマークに追加

Nuxt.jsを触っていると何かのタイミングでビルド時にファイルを生成したくなる場合があります。(あんまりないかも…)

今回は「package.jsonに書かれたバージョン番号をビルドしたdistディレクトリの中にVERSION.TXTとして含めたい。」という感じでした。
この場合Nuxtのhooksの機能をうまく活用すると、ビルド時にバージョン番号を記載したテキストファイルを生成することが出来ます。

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大先生に感謝しています。

comments powered by Disqus