Skip to content

Commit 17354e6

Browse files
author
Kent C. Dodds
committed
fix(build): remove the ignored-but-copied files from the built output
1 parent fb67b05 commit 17354e6

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

src/scripts/build/babel.js

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
const path = require('path')
22
const spawn = require('cross-spawn')
3+
const yargsParser = require('yargs-parser')
34
const rimraf = require('rimraf')
5+
const glob = require('glob')
46
const {hasPkgProp, fromRoot, resolveBin, hasFile} = require('../../utils')
57

68
const args = process.argv.slice(2)
79
const here = p => path.join(__dirname, p)
810

11+
const parsedArgs = yargsParser(args)
12+
913
const useBuiltinConfig =
1014
!args.includes('--presets') &&
1115
!hasFile('.babelrc') &&
@@ -16,14 +20,15 @@ const config = useBuiltinConfig
1620
? ['--presets', here('../../config/babelrc.js')]
1721
: []
1822

19-
const ignore = args.includes('--ignore')
20-
? []
21-
: ['--ignore', '**/__tests__/**,**/__mocks__/**']
23+
const builtInIgnore = '**/__tests__/**,**/__mocks__/**'
24+
25+
const ignore = args.includes('--ignore') ? [] : ['--ignore', builtInIgnore]
2226

2327
const copyFiles = args.includes('--no-copy-files') ? [] : ['--copy-files']
2428

2529
const useSpecifiedOutDir = args.includes('--out-dir')
26-
const outDir = useSpecifiedOutDir ? [] : ['--out-dir', 'dist']
30+
const builtInOutDir = 'dist'
31+
const outDir = useSpecifiedOutDir ? [] : ['--out-dir', builtInOutDir]
2732

2833
if (!useSpecifiedOutDir && !args.includes('--no-clean')) {
2934
rimraf.sync(fromRoot('dist'))
@@ -35,4 +40,17 @@ const result = spawn.sync(
3540
{stdio: 'inherit'},
3641
)
3742

43+
// because babel will copy even ignored files, we need to remove the ignored files
44+
const pathToOutDir = fromRoot(parsedArgs.outDir || builtInOutDir)
45+
const ignoredPatterns = (parsedArgs.ignore || builtInIgnore)
46+
.split(',')
47+
.map(pattern => path.join(pathToOutDir, pattern))
48+
const ignoredFiles = ignoredPatterns.reduce(
49+
(all, pattern) => [...all, ...glob.sync(pattern)],
50+
[],
51+
)
52+
ignoredFiles.forEach(ignoredFile => {
53+
rimraf.sync(ignoredFile)
54+
})
55+
3856
process.exit(result.status)

0 commit comments

Comments
 (0)