22const fs = require ( 'fs' )
33const path = require ( 'path' )
44const gulp = require ( 'gulp' )
5+ const del = require ( 'del' )
56const log = require ( 'fancy-log' )
67const webpack = require ( 'webpack' )
78const babel = require ( 'gulp-babel' )
89const uglify = require ( 'uglify-js' )
910const docgenerator = require ( './tools/docgenerator' )
1011const entryGenerator = require ( './tools/entryGenerator' )
1112const validateAsciiChars = require ( './tools/validateAsciiChars' )
13+ const { validateEmbeddedDocs } = require ( './tools/validateEmbeddedDocs' )
1214
13- const ENTRY = './src/entry/ bundleAny.js'
15+ const ENTRY = './src/bundleAny.js'
1416const HEADER = './src/header.js'
1517const VERSION = './src/version.js'
1618const COMPILE_SRC = './src/**/*.js'
19+ const COMPILE_ENTRY_SRC = './src/entry/**/*.js'
1720const COMPILE_LIB = './lib'
21+ const COMPILE_ENTRY_LIB = './lib/entry'
1822const COMPILED_MAIN_ANY = './lib/entry/mainAny.js'
1923const FILE = 'math.js'
2024const FILE_MIN = 'math.min.js'
@@ -136,7 +140,14 @@ function compile () {
136140 . pipe ( babel ( ) )
137141 . pipe ( gulp . dest ( COMPILE_LIB ) )
138142}
139- function writeBanner ( cb ) {
143+
144+ function compileEntryFiles ( ) {
145+ return gulp . src ( COMPILE_ENTRY_SRC )
146+ . pipe ( babel ( ) )
147+ . pipe ( gulp . dest ( COMPILE_ENTRY_LIB ) )
148+ }
149+
150+ function writeCompiledHeader ( cb ) {
140151 fs . writeFileSync ( COMPILED_HEADER , createBanner ( ) )
141152 cb ( )
142153}
@@ -168,22 +179,6 @@ function minify (done) {
168179 done ( )
169180}
170181
171- function validate ( done ) {
172- const childProcess = require ( 'child_process' )
173-
174- // this is run in a separate process as the modules need to be reloaded
175- // with every validation (and required modules stay in cache).
176- childProcess . execFile ( 'node' , [ './tools/validateEmbeddedDocs' ] , function ( err , stdout , stderr ) {
177- if ( err instanceof Error ) {
178- throw err
179- }
180- process . stdout . write ( stdout )
181- process . stderr . write ( stderr )
182-
183- done ( )
184- } )
185- }
186-
187182function validateAscii ( done ) {
188183 const Reset = '\x1b[0m'
189184 const BgRed = '\x1b[41m'
@@ -208,7 +203,7 @@ function validateAscii (done) {
208203}
209204
210205function generateDocs ( done ) {
211- const all = require ( REF_SRC + 'entry/ bundleAny' )
206+ const all = require ( REF_SRC + 'bundleAny' )
212207 const functionNames = Object . keys ( all )
213208 . filter ( key => typeof all [ key ] === 'function' )
214209
@@ -260,14 +255,23 @@ gulp.task('watch', function watch () {
260255
261256gulp . task ( 'compile' , compile )
262257
258+ function clean ( ) {
259+ return del ( [
260+ 'dist/**/*' ,
261+ 'lib/**/*'
262+ ] )
263+ }
264+
263265// The default task (called when you run `gulp`)
264266gulp . task ( 'default' , gulp . series (
265- bundle ,
267+ clean ,
266268 compile ,
267- writeBanner ,
268269 generateEntryFiles ,
270+ compileEntryFiles ,
271+ writeCompiledHeader ,
269272 addDeprecatedFunctions ,
273+ bundle ,
270274 minify ,
271- validate ,
275+ validateEmbeddedDocs ,
272276 generateDocs
273277) )
0 commit comments