Add constants for build-scripts

This commit is contained in:
Thomas Cazade 2020-09-14 08:12:09 +02:00
parent 270c302e51
commit 53ac2a6b6f
3 changed files with 29 additions and 24 deletions

View file

@ -1,5 +1,4 @@
const fs = require('fs'); const fs = require('fs');
const path = require('path');
const sass = require('sass'); const sass = require('sass');
const write = require('write'); const write = require('write');
const rimraf = require('rimraf'); const rimraf = require('rimraf');
@ -7,24 +6,22 @@ const postcss = require('postcss');
const cssnano = require('cssnano'); const cssnano = require('cssnano');
const autoprefixer = require('autoprefixer'); const autoprefixer = require('autoprefixer');
const constants = require('./constants');
const log = require('./log'); const log = require('./log');
async function build() { async function build() {
const entrypoint = path.resolve(__dirname, '../src/styles.scss');
const paperDocsPath = path.resolve(__dirname, '../docs/static/assets/paper.css');
log('Starting PaperCSS build...'); log('Starting PaperCSS build...');
log('Cleaning "dist/, docs/static/assets/paper.css" folder...'); log('Cleaning "dist/, docs/static/assets/paper.css" folder...');
rimraf.sync('dist', { disableGlob: true }); rimraf.sync('dist', { disableGlob: true });
if (fs.existsSync(paperDocsPath)) { if (fs.existsSync(constants.PAPER_DOCS_PATH)) {
fs.unlinkSync(paperDocsPath); fs.unlinkSync(constants.PAPER_DOCS_PATH);
} }
log('Compiling SCSS to CSS, entrypoint:', entrypoint); log('Compiling SCSS to CSS, entrypoint:', constants.ENTRYPOINT_PATH);
const compiledCSS = sass.renderSync({ file: entrypoint }); const compiledCSS = sass.renderSync({ file: constants.ENTRYPOINT_PATH });
log('Processing CSS: autoprefixer...'); log('Processing CSS: autoprefixer...');
@ -34,14 +31,11 @@ async function build() {
const minifiedCSS = await postcss([cssnano]).process(autoprefixedCSS.css, { from: undefined }); const minifiedCSS = await postcss([cssnano]).process(autoprefixedCSS.css, { from: undefined });
const paperPath = path.resolve(__dirname, '../dist/paper.css');
const paperminpath = path.resolve(__dirname, '../dist/paper.min.css');
log('Writing paper.css and paper.min.css files to dist/ and docs/ folders...'); log('Writing paper.css and paper.min.css files to dist/ and docs/ folders...');
write(paperPath, autoprefixedCSS.css); write(constants.PAPER_DIST_PATH, autoprefixedCSS.css);
write(paperminpath, minifiedCSS.css); write(constants.PAPER_DIST_MIN_PATH, minifiedCSS.css);
write(paperDocsPath, autoprefixedCSS.css); write(constants.PAPER_DOCS_PATH, autoprefixedCSS.css);
log('Build done!'); log('Build done!');
} }

8
build/constants.js Normal file
View file

@ -0,0 +1,8 @@
const path = require('path');
module.exports = {
ENTRYPOINT_PATH: path.resolve(__dirname, '../src/styles.scss'),
PAPER_DIST_PATH: path.resolve(__dirname, '../dist/paper.css'),
PAPER_DIST_MIN_PATH: path.resolve(__dirname, '../dist/paper.min.css'),
PAPER_DOCS_PATH: path.resolve(__dirname, '../docs/static/assets/paper.css'),
};

View file

@ -1,23 +1,26 @@
const util = require('util'); const util = require('util');
const path = require('path');
const sass = require('sass'); const sass = require('sass');
const write = require('write'); const write = require('write');
const postcss = require('postcss'); const postcss = require('postcss');
const chokidar = require('chokidar'); const chokidar = require('chokidar');
const autoprefixer = require('autoprefixer'); const autoprefixer = require('autoprefixer');
const constants = require('./constants');
const log = require('./log'); const log = require('./log');
const sassRenderPromisified = util.promisify(sass.render); const sassRenderPromisified = util.promisify(sass.render);
const entrypoint = path.resolve(__dirname, '../src/styles.scss'); function compile() {
const paperDocsPath = path.resolve(__dirname, '../docs/static/assets/paper.css'); sassRenderPromisified({ file: constants.ENTRYPOINT_PATH })
chokidar.watch('./src/**/*.scss').on('change', (event, path) => {
log(`Detected file change (${event}), re-building compiled CSS...`);
sassRenderPromisified({ file: entrypoint })
.then((compiledCSS) => postcss([autoprefixer]).process(compiledCSS.css.toString(), { from: undefined })) .then((compiledCSS) => postcss([autoprefixer]).process(compiledCSS.css.toString(), { from: undefined }))
.then((autoprefixedCSS) => write(paperDocsPath, autoprefixedCSS.css)) .then((autoprefixedCSS) => write(constants.PAPER_DOCS_PATH, autoprefixedCSS.css))
.then(() => log('Re-built compiled CSS.')); .then(() => log('Compiled CSS in docs/ folder.'));
}
chokidar.watch('./src/**/*.scss').on('change', (event) => {
log(`Detected file change (${event}), compiling SCSS to CSS...`);
compile();
}); });
// Do initial compilation.
compile();