12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /**
- * @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);
- });
- fs.stat(`${fileName}.js.map`, () => {
- fs.unlink(`${fileName}.js.map`, unlinkHandler);
- });
- })
- .on('ready', () => log(`Watching '${fileMatch}' for changes.`));
|