@@ -42,20 +42,29 @@ const plugins = [
42
42
function createBundleConfiguration ( filename , format ) {
43
43
const lowercaseFormat = format . toLowerCase ( ) ;
44
44
45
- if ( ! [ packageJSON . module , packageJSON . browser ] . includes ( filename ) ) {
45
+ if (
46
+ ! [ packageJSON . module , packageJSON . main , packageJSON . browser ] . includes (
47
+ filename
48
+ )
49
+ ) {
46
50
throw new Error ( `Invalid filename provided. Received: ${ filename } ` ) ;
47
51
}
48
52
49
53
if ( ! [ "esm" , "cjs" ] . includes ( lowercaseFormat ) ) {
50
54
throw new Error ( `Unrecognised output format provided. Received: ${ format } ` ) ;
51
55
}
52
56
53
- if ( lowercaseFormat === "cjs" && filename !== packageJSON . browser ) {
57
+ if ( lowercaseFormat === "cjs" && filename !== packageJSON . main ) {
54
58
throw new Error ( "A CJS bundle can only be created for the main bundle." ) ;
55
59
}
56
60
57
- if ( lowercaseFormat === "esm" && filename !== packageJSON . module ) {
58
- throw new Error ( "An ESM bundle can only be created for the module bundle." ) ;
61
+ if (
62
+ lowercaseFormat === "esm" &&
63
+ ! [ packageJSON . module , packageJSON . browser ] . includes ( filename )
64
+ ) {
65
+ throw new Error (
66
+ "An ES module bundle can only be created for the module or browser bundle."
67
+ ) ;
59
68
}
60
69
61
70
return {
@@ -73,7 +82,8 @@ function createBundleConfiguration(filename, format) {
73
82
} ;
74
83
}
75
84
76
- const ESM = createBundleConfiguration ( packageJSON . module , "esm" ) ;
77
- const CJS = createBundleConfiguration ( packageJSON . browser , "cjs" ) ;
78
-
79
- export default [ ESM , CJS ] ;
85
+ export default [
86
+ createBundleConfiguration ( packageJSON . module , "esm" ) ,
87
+ createBundleConfiguration ( packageJSON . browser , "esm" ) ,
88
+ createBundleConfiguration ( packageJSON . main , "cjs" )
89
+ ] ;
0 commit comments