納品用アーカイブの生成
pluginArchive()はビルド完了時に成果物をZIPやTARへまとめます。ここでは納品コードの整形と組み合わせて、引き渡し用のファイルを生成します。
Table of Contents
プラグインを追加する
import { defineConfig, pluginSsg, pluginBeautify, pluginArchive } from "minista"
export default defineConfig({
plugins: [
pluginSsg(),
pluginBeautify({ src: ["**/*.html"] }),
pluginArchive(),
],
})npm run buildを実行すると、標準の出力先dist/をまとめたdist/dist.zipが生成されます。アーカイブだけを作る別コマンドは不要です。
入力とアーカイブの内容
dist/
├── index.html
├── about.html
├── assets/
│ └── ...
└── dist.zipdist/
├── index.html
├── about.html
└── assets/
└── ...アーカイブ内のパスには入力ディレクトリ名が含まれます。この例ならdist/index.htmlです。設定されたアーカイブの出力先は圧縮対象から除外され、ZIP自体がZIPへ入ることを防ぎます。
納品前に一度展開し、HTML、アセット、publicからコピーしたファイルが揃っていることを確認してください。
出力名を指定する
名前は拡張子なしで指定します。次の設定ならdist/downloads/site.zipへ生成されます。
pluginArchive({
archives: [{ outName: "downloads/site" }],
})archivesは配列です。複数の設定を書けば、一回のビルドで複数のアーカイブを作れます。指定した配列は既定の設定を置き換えます。
不要なファイルを除外する
除外条件は、プロジェクトルートからのパスを基準とするglobで指定します。
pluginArchive({
archives: [
{
outName: "site",
ignore: ["dist/**/*.map", "dist/internal/**"],
},
],
})設定から削除した古いアーカイブや、別途置いたZIPは自動除外されません。出力先にそれらを残す場合は、必要な除外条件を指定してください。
入力ディレクトリと形式を変える
入力を省略すると、build.outDirで解決された出力先を使います。例えばbuild.outDir: "output"なら、既定のアーカイブはoutput/dist.zipです。
別のディレクトリを圧縮する場合はsrcDirを指定します。TAR形式も選べます。
pluginArchive({
archives: [
{ srcDir: "dist", outName: "site" },
{ srcDir: "dist", outName: "site-tar", format: "tar", options: {} },
],
})入力ディレクトリが存在しない場合や、ディレクトリ以外を指定した場合はビルドが停止します。設定値と診断はpluginArchiveを参照してください。