@@ -15,15 +15,27 @@ task('clean', (done) => {
15
15
done ( ) ;
16
16
} ) ;
17
17
18
- task ( 'ts-compile' , ( ) => {
18
+ function compileTs ( modules = false ) {
19
19
return src ( [ 'src/**/*.{ts,tsx}' , '!src/**/__stories__/**/*.{ts,tsx}' ] )
20
20
. pipe ( replace ( / i m p o r t ' .+ \. s c s s ' ; / g, ( match ) => match . replace ( '.scss' , '.css' ) ) )
21
21
. pipe (
22
22
babel ( {
23
- presets : [ '@babel/preset-env' , '@babel/preset-react' , '@babel/preset-typescript' ] ,
23
+ presets : [
24
+ [ '@babel/preset-env' , { modules : modules ? false : 'cjs' } ] ,
25
+ '@babel/preset-react' ,
26
+ '@babel/preset-typescript' ,
27
+ ] ,
24
28
} ) ,
25
29
)
26
- . pipe ( dest ( path . resolve ( BUILD_DIR ) ) ) ;
30
+ . pipe ( dest ( path . resolve ( BUILD_DIR , modules ? 'esm' : 'cjs' ) ) ) ;
31
+ }
32
+
33
+ task ( 'ts-compile-esm' , ( ) => {
34
+ return compileTs ( true ) ;
35
+ } ) ;
36
+
37
+ task ( 'ts-compile-cjs' , ( ) => {
38
+ return compileTs ( ) ;
27
39
} ) ;
28
40
29
41
task ( 'ts-declaration' , ( ) => {
@@ -35,19 +47,30 @@ task('ts-declaration', () => {
35
47
36
48
return src ( [ 'src/**/*.{ts,tsx}' , '!src/**/__stories__/**/*.{ts,tsx}' ] )
37
49
. pipe ( tsProject ( ) )
38
- . pipe ( dest ( path . resolve ( BUILD_DIR ) ) ) ;
50
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'esm' ) ) )
51
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'cjs' ) ) ) ;
39
52
} ) ;
40
53
41
54
task ( 'i18n' , ( ) => {
42
- return src ( 'src/**/i18n/*.json' ) . pipe ( dest ( path . resolve ( BUILD_DIR ) ) ) ;
55
+ return src ( 'src/**/i18n/*.json' )
56
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'esm' ) ) )
57
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'cjs' ) ) ) ;
43
58
} ) ;
44
59
45
60
task ( 'styles' , ( ) => {
46
61
return src ( [ 'src/**/*.scss' , '!src/**/__stories__/**/*.scss' ] )
47
62
. pipe ( sass ( ) . on ( 'error' , sass . logError ) )
48
- . pipe ( dest ( path . resolve ( BUILD_DIR ) ) ) ;
63
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'esm' ) ) )
64
+ . pipe ( dest ( path . resolve ( BUILD_DIR , 'cjs' ) ) ) ;
49
65
} ) ;
50
66
51
- task ( 'build' , series ( [ 'clean' , parallel ( [ 'ts-compile' , 'ts-declaration' , 'i18n' ] ) , 'styles' ] ) ) ;
67
+ task (
68
+ 'build' ,
69
+ series ( [
70
+ 'clean' ,
71
+ parallel ( [ 'ts-compile-cjs' , 'ts-compile-esm' , 'ts-declaration' , 'i18n' ] ) ,
72
+ 'styles' ,
73
+ ] ) ,
74
+ ) ;
52
75
53
76
task ( 'default' , series ( [ 'build' ] ) ) ;
0 commit comments