chore: add watch scripts.

This commit is contained in:
jaywcjlove 2022-09-29 23:09:45 +08:00
parent 5094fac68a
commit a612c2b971
4 changed files with 28 additions and 7 deletions

View File

@ -22,6 +22,7 @@ git clone git@github.com:jaywcjlove/reference.git
```shell
npm i # 安装依赖
npm run build # 编译输出 HTML
npm run start # 监听 md 文件编译输出 HTML
```
HTML 存放在仓库根目录下的 `dist` 目录中,将 `dist/index.html` 静态页面在浏览器中打开预览。

View File

@ -8,7 +8,7 @@
"private": false,
"scripts": {
"build": "node scripts/build.mjs",
"start": "node scripts/build.mjs"
"start": "node scripts/watch.mjs"
},
"repository": {
"type": "git",
@ -20,6 +20,7 @@
"keywords": [],
"devDependencies": {
"@wcj/markdown-to-html": "^2.0.15",
"chokidar": "^3.5.3",
"fs-extra": "^10.1.0",
"recursive-readdir-files": "^2.3.0",
"rehype-document": "^6.1.0",

View File

@ -3,15 +3,15 @@ import path from 'path';
import recursiveReaddirFiles from 'recursive-readdir-files';
import { create } from './create.mjs';
const OUTOUT = path.resolve(process.cwd(), 'dist');
const DOCS = path.resolve(process.cwd(), 'docs');
const CSSPATH = path.resolve(process.cwd(), 'scripts/style.css');
const CSS_OUTPUT_PATH = path.resolve(OUTOUT, 'style/style.css');
export const OUTOUT = path.resolve(process.cwd(), 'dist');
export const DOCS = path.resolve(process.cwd(), 'docs');
export const CSSPATH = path.resolve(process.cwd(), 'scripts/style.css');
export const CSS_OUTPUT_PATH = path.resolve(OUTOUT, 'style/style.css');
async function createHTML(files = [], num = 0) {
export async function createHTML(files = [], num = 0) {
const dataFile = files[num];
if (!dataFile) {
console.log('\ndone!')
console.log(' \n done!\n')
return;
}
++num;

19
scripts/watch.mjs Normal file
View File

@ -0,0 +1,19 @@
import path from 'path';
import chokidar from 'chokidar';
import { getStat } from 'recursive-readdir-files';
import { run, DOCS, createHTML } from './index.mjs';
;(async () => {
await run();
const homeMdPath = path.relative(process.cwd(), 'README.md')
const watcher = chokidar.watch([DOCS, homeMdPath], {
ignored: /(^|[\/\\])\../, // ignore dotfiles
persistent: true
});
watcher.on('change', async (path) => {
const stats = await getStat(path)
createHTML([stats]);
})
.on('error', error => console.log(`Watcher error: ${error}`))
})();