const fs = require('fs'); const path = require('path'); function copyRecursively(file, destination) { const target = path.join(destination, path.basename(file)); if (fs.statSync(file).isDirectory()) { console.log('mkdir', target); fs.mkdirSync(target, {recursive: true}); fs.readdirSync(file).forEach(f => { copyRecursively(path.join(file, f), target); }); } else { console.log('> cp ', target); fs.copyFileSync(file, target); } } [ 'yarn.lock', 'README.md', 'config/', 'views/', ].forEach(file => { copyRecursively(file, 'dist'); }); fs.mkdirSync('dist/types', {recursive: true}); fs.readdirSync('src/types').forEach(file => { copyRecursively(path.join('src/types', file), 'dist/types'); });