vite-pug-static-builder 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -5
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +2 -1
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ Vite 6 と Vite 7 の両方のバージョンをサポートしています。
|
|
|
17
17
|
- 📝 **Pugサポート**: Pugテンプレートエンジンで効率的なHTML作成
|
|
18
18
|
- 🔄 **開発時リアルタイム更新**: HMR (Hot Module Replacement) 対応
|
|
19
19
|
- 📱 **静的サイト生成**: 本番環境向けに最適化された静的HTMLファイルを生成
|
|
20
|
+
- ✨ **整形済みHTML出力**: デフォルトで可読性の高い、整形済みHTMLを出力
|
|
20
21
|
- 🎨 **高度なカスタマイズ**: 豊富な設定オプションでプロジェクトに合わせた細かな調整
|
|
21
22
|
- 🛡️ **型安全**: TypeScript完全対応による開発時エラーの早期発見
|
|
22
23
|
- 🧪 **テスト統合**: Vitest 3.2による包括的なテストサポート
|
|
@@ -53,16 +54,14 @@ export default defineConfig({
|
|
|
53
54
|
plugins: [
|
|
54
55
|
pugPlugin({
|
|
55
56
|
buildOptions: {
|
|
56
|
-
basedir: './src'
|
|
57
|
-
pretty: true
|
|
57
|
+
basedir: './src'
|
|
58
58
|
},
|
|
59
59
|
buildLocals: {
|
|
60
60
|
title: 'My Website',
|
|
61
61
|
env: 'production'
|
|
62
62
|
},
|
|
63
63
|
serveOptions: {
|
|
64
|
-
basedir: './src'
|
|
65
|
-
pretty: true
|
|
64
|
+
basedir: './src'
|
|
66
65
|
},
|
|
67
66
|
serveLocals: {
|
|
68
67
|
title: 'My Website (Dev)',
|
|
@@ -111,6 +110,24 @@ block content
|
|
|
111
110
|
|
|
112
111
|
## 詳細設定オプション
|
|
113
112
|
|
|
113
|
+
### Pugオプションの挙動
|
|
114
|
+
|
|
115
|
+
`buildOptions` と `serveOptions` で指定するPugのオプションには、以下のデフォルト設定が適用されます。
|
|
116
|
+
|
|
117
|
+
- **`pretty`**:
|
|
118
|
+
- **デフォルト**: `true`
|
|
119
|
+
- **説明**: 出力されるHTMLは、読みやすいように整形(インデントと改行)されます。
|
|
120
|
+
- **上書き**: `pretty: false` を設定すると、HTMLは圧縮され、ファイルサイズが削減されます。これは本番環境でのパフォーマンス向上に役立ちます。
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
// 本番ビルドでHTMLを圧縮する例
|
|
124
|
+
pugPlugin({
|
|
125
|
+
buildOptions: {
|
|
126
|
+
pretty: false // HTMLを圧縮
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
```
|
|
130
|
+
|
|
114
131
|
### プラグイン設定
|
|
115
132
|
|
|
116
133
|
```typescript
|
|
@@ -156,7 +173,6 @@ pugPlugin({
|
|
|
156
173
|
},
|
|
157
174
|
serveOptions: {
|
|
158
175
|
basedir: './src',
|
|
159
|
-
pretty: true, // 開発時は読みやすく
|
|
160
176
|
compileDebug: true,
|
|
161
177
|
cache: false // 開発時はキャッシュ無効
|
|
162
178
|
},
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,aAAa,KAAG,MAmE7D,CAAA"}
|
package/dist/build.js
CHANGED
|
@@ -9,6 +9,7 @@ import { outputLog } from './utils.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export const vitePluginPugBuild = (settings) => {
|
|
11
11
|
const { options, locals } = settings ?? {};
|
|
12
|
+
const pugOptions = { pretty: true, ...options };
|
|
12
13
|
const pathMap = new Map();
|
|
13
14
|
let root = '';
|
|
14
15
|
return {
|
|
@@ -39,7 +40,7 @@ export const vitePluginPugBuild = (settings) => {
|
|
|
39
40
|
// PugファイルのHTMLへの変換
|
|
40
41
|
if (pathMap.has(id)) {
|
|
41
42
|
const pugPath = pathMap.get(id);
|
|
42
|
-
const compiledTemplate = compileFile(pugPath,
|
|
43
|
+
const compiledTemplate = compileFile(pugPath, pugOptions);
|
|
43
44
|
const html = compiledTemplate(locals);
|
|
44
45
|
outputLog('info', 'compiled:', path.relative(root, pugPath));
|
|
45
46
|
return html;
|
package/dist/serve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAiB,OAAO,EAAE,MAAM,MAAM,CAAA;AAE1D,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAKtC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;IAClC,4BAA4B;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,IAAI,CAAA;IACvC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,OAAO,CAAC,YAAY,KACvB,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAiB,OAAO,EAAE,MAAM,MAAM,CAAA;AAE1D,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAKtC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;IAClC,4BAA4B;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,IAAI,CAAA;IACvC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,OAAO,CAAC,YAAY,KACvB,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;AA+FrE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,aAAa,KAAG,MAiC7D,CAAA"}
|
package/dist/serve.js
CHANGED
|
@@ -12,6 +12,7 @@ import { compilePug } from './pug.js';
|
|
|
12
12
|
*/
|
|
13
13
|
const createMiddleware = (settings, server) => {
|
|
14
14
|
const { options, locals, ignorePattern } = settings;
|
|
15
|
+
const pugOptions = { pretty: true, ...options };
|
|
15
16
|
const ignoreMatcher = ignorePattern ? picomatch(ignorePattern) : null;
|
|
16
17
|
return async (req, res, next) => {
|
|
17
18
|
// 特殊なURLパスをスキップ
|
|
@@ -48,7 +49,7 @@ const createMiddleware = (settings, server) => {
|
|
|
48
49
|
}
|
|
49
50
|
try {
|
|
50
51
|
// Pugファイルをコンパイル
|
|
51
|
-
const compileResult = await compilePug(server.moduleGraph, url, pugAbsPath,
|
|
52
|
+
const compileResult = await compilePug(server.moduleGraph, url, pugAbsPath, pugOptions, locals);
|
|
52
53
|
// Pugコンパイルエラー
|
|
53
54
|
if (compileResult instanceof Error) {
|
|
54
55
|
return next(compileResult);
|