Created
April 26, 2019 05:22
-
-
Save dynamis/1137e4ad3a1d7b621374af3d264a821a to your computer and use it in GitHub Desktop.
VuePress で .html 無しでビルドした後で .html を付与するやっつけスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var fs = require("fs"); | |
var glob = require("glob"); | |
var path = require("path"); | |
/* | |
* 以下のすべてに該当するファイルに .html 拡張子を付与する | |
* - ディレクトリではない | |
* - assets や images ディレクトリ内のファイルではない | |
* - ファイル名が _ で始まらない | |
* - ファイル名に . を含まない (拡張子がない) | |
* 本当は renamer あたりで一撃でやるのを package.json に書きたかったが | |
* 再帰かつディレクトリを除外する形で指定する方法が見つからなかったのでこんな感じ | |
*/ | |
glob( | |
"docs/.vuepress/dist/**", | |
{ nodir: true, ignore: "docs/.vuepress/dist/@(assets|images)/**" }, | |
(err, files) => { | |
files.forEach(filename => { | |
if (/^[^._][^.]*$/.test(path.basename(filename))) { | |
fs.renameSync(filename, filename + ".html"); | |
} | |
}); | |
} | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
vuepress デフォルトが /pagename.html など .html 付きしか対応できない問題
vuejs/vuepress#1060
が修正されず、プラグイン
https://www.npmjs.com/package/vuepress-plugin-clean-urls
で /pagename としてアクセスできるようにしたらビルド結果のファイルが拡張子無しになり netlify で text/plain で配信されて泣ける結果になったために書いたスクリプトです
netlify で pretty url を有効にしてホストするといったケースにどうぞ。除外パスは適当に書き換えて使ってね。はぁと。