Skip to content

Commit f4444a9

Browse files
committed
build: update build scripts
1 parent 9136c82 commit f4444a9

File tree

2 files changed

+49
-50
lines changed

2 files changed

+49
-50
lines changed

build/pug.js

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
11
#!/usr/bin/env node
22
'use strict'
33

4-
const fs = require('fs')
5-
const glob = require('glob')
4+
const fs = require('fs').promises
5+
// const glob = require('glob')
66
const path = require('path')
77
const mkdirp = require('mkdirp')
88
const pug = require('pug')
9-
const { basename, dirname, resolve, extname, sep } = path
10-
11-
const argv = require('minimist')(process.argv.slice(2), {
12-
// boolean: ['enablePrettier', 'injectVendors', 'injectSvg']
13-
})
14-
console.dir(argv)
15-
const { src } = argv
16-
const { dest } = argv
17-
18-
// Get all pug files
19-
const getAllFiles = src => {
20-
// const cwd = 'pug/'
21-
const pattern = `${src}/**/*.pug`
22-
const options = {
23-
ignore: `${src}/_*/**`
24-
}
25-
return new glob.sync(pattern, options)
26-
}
9+
const { basename, dirname, resolve, sep } = path
10+
11+
const globby = require('globby')
2712

28-
const isPug = filename => extname(filename) === '.pug'
13+
// These are the filetypes we only care about replacing the version
14+
const GLOB = [
15+
'**/*.pug'
16+
]
17+
18+
const SRC = 'src/pug/views/'
19+
20+
const GLOBBY_OPTIONS = {
21+
cwd: path.join(__dirname, '..', SRC)
22+
}
2923

3024
const compile = (filename, basedir) => {
31-
const levels = basedir.split(`${sep}`).filter(el => el !== '' ).length
25+
const levels = basedir.split(`${sep}`).filter(el => el !== '').length
3226
const base = levels => {
3327
let path = './'
3428
while (levels > 0) {
@@ -49,38 +43,43 @@ const compile = (filename, basedir) => {
4943
return html
5044
}
5145

52-
const checkPath = (src, dest) => {
53-
// Check if path is file or directory
54-
if (fs.statSync(src).isDirectory()) {
55-
const files = getAllFiles(src)
56-
files.forEach(file => {
57-
if (isPug(file)) {
58-
compilePugToHtml(resolve(file), dest)
46+
// Build html files
47+
const compilePugToHtml = (file, dest) => {
48+
const dir = dirname(file)
49+
const filename = basename(file).replace('.pug', '.html')
50+
const relative = path.relative(path.join(__dirname, '..'), dir.replace(SRC, ''))
51+
const html = compile(path.join(__dirname, '..', SRC, file), `${relative}`)
52+
53+
mkdirp(path.join(__dirname, '..', dest, relative)).then(() => {
54+
fs.writeFile(resolve(__dirname, '..', dest, relative, filename), html, err => {
55+
if (err) {
56+
throw err
5957
}
60-
// TODO: handle errors
58+
59+
console.log(`${resolve(__dirname, '..', dest, relative, filename)} file saved!`)
6160
})
62-
} else if (isPug(src)) {
63-
compilePugToHtml(resolve(src), dest)
64-
}
65-
// TODO: handle errors
61+
})
6662
}
6763

68-
// Build html files
69-
const compilePugToHtml = (src, dest) => {
70-
const dir = dirname(src)
71-
const file = basename(src).replace('.pug', '.html')
72-
const relative = path.relative(resolve(__dirname, '..'), dir.replace(`src${sep}pug${sep}views`, ''))
73-
const html = compile(src, `${relative}`)
74-
mkdirp.sync(resolve(__dirname, '..', dest, relative))
64+
const args = require('minimist')(process.argv.slice(2))
7565

66+
async function main(args) {
67+
const { dest } = args
7668

77-
fs.writeFile(resolve(__dirname, '..', dest, relative, file), html, err => {
78-
if (err) {
79-
throw err
80-
}
69+
if (!dest) {
70+
console.error('USAGE: change-version old_version new_version [--verbose] [--dry[-run]]')
71+
console.error('Got arguments:', args)
72+
process.exit(1)
73+
}
8174

82-
console.log(`${resolve(__dirname, '..', dest, relative, file)} file saved!`)
83-
})
75+
try {
76+
const files = await globby(GLOB, GLOBBY_OPTIONS)
77+
78+
await Promise.all(files.map(file => compilePugToHtml(file, dest)))
79+
} catch (error) {
80+
console.error(error)
81+
process.exit(1)
82+
}
8483
}
8584

86-
checkPath(src, dest)
85+
main(args)

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@
6262
"localhost": "browser-sync start --server \"./dist\" --serveStatic \"./\" --files \"./dist/\"",
6363
"prettier": "prettier --print-width=160 --write \"dist\"",
6464
"pug": "npm-run-all --parallel pug-*",
65-
"pug-dist": "node build/pug.js --src src/pug/views/ --dest dist/",
66-
"pug-views": "node build/pug.js --src src/pug/views/ --dest src/views/",
65+
"pug-dist": "node build/pug.js --dest dist/",
66+
"pug-views": "node build/pug.js --dest src/views/",
6767
"release-version": "node build/change-version.js",
6868
"serve": "serve dist",
6969
"start": "npm-run-all --sequential clean css js copy --parallel localhost watch",

0 commit comments

Comments
 (0)