UNPKG

@interaktiv/dia-scripts

Version:

CLI toolbox with common scripts for most sort of projects at DIA

35 lines (27 loc) 1.14 kB
"use strict"; const path = require('path'); const spawn = require('cross-spawn'); const { hasPkgProp, fromRoot, resolveBin, hasFile, cleanDir } = require('../../utils'); const args = process.argv.slice(2); const here = p => path.join(__dirname, p); const useBuiltinConfig = args.includes('--presets') === false && hasFile('.babelrc') === false && hasFile('.babelrc.js') === false && hasFile('babel.config.js') === false && hasPkgProp('babel') === false; const config = useBuiltinConfig ? ['--presets', here('../../config/babelrc.js')] : []; const ignore = args.includes('--ignore') ? [] : ['--ignore', '**/__tests__/**,**/__mocks__/**']; const copyFiles = args.includes('--no-copy-files') ? [] : ['--copy-files']; const useSpecifiedOutDir = args.includes('--out-dir'); const outDir = useSpecifiedOutDir ? [] : ['--out-dir', 'dist']; if (!useSpecifiedOutDir && !args.includes('--no-clean')) { cleanDir(fromRoot('dist')); } const result = spawn.sync(resolveBin('@babel/cli', { executable: 'babel' }), [...outDir, ...copyFiles, ...ignore, ...config, 'src'].concat(args), { stdio: 'inherit' }); process.exit(result.status);