You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.0 KiB
44 lines
1.0 KiB
1 year ago
|
/**
|
||
|
* @file
|
||
|
*
|
||
|
* Watch changes to *.es6.js files and compile them to ES5 during development.
|
||
|
*
|
||
|
* @internal This file is part of the core javascript build process and is only
|
||
|
* meant to be used in that context.
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
const chokidar = require('chokidar');
|
||
|
|
||
|
const changeOrAdded = require('./changeOrAdded');
|
||
|
const log = require('./log');
|
||
|
|
||
|
// Match only on .es6.js files.
|
||
|
const fileMatch = './**/*.es6.js';
|
||
|
// Ignore everything in node_modules
|
||
|
const watcher = chokidar.watch(fileMatch, {
|
||
|
ignoreInitial: true,
|
||
|
ignored: './node_modules/**'
|
||
|
});
|
||
|
|
||
|
const unlinkHandler = (err) => {
|
||
|
if (err) {
|
||
|
log(err);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// Watch for filesystem changes.
|
||
|
watcher
|
||
|
.on('add', changeOrAdded)
|
||
|
.on('change', changeOrAdded)
|
||
|
.on('unlink', (filePath) => {
|
||
|
const fileName = filePath.slice(0, -7);
|
||
|
fs.stat(`${fileName}.js`, () => {
|
||
|
fs.unlink(`${fileName}.js`, unlinkHandler);
|
||
|
});
|
||
|
})
|
||
|
.on('ready', () => log(`Watching '${fileMatch}' for changes.`));
|