@@ -2,6 +2,7 @@ const spawn = require("cross-spawn");
22const validate = require ( "validate-npm-package-name" ) ;
33const serializePackage = require ( "./utils/serializePackage" ) ;
44const serializeTSConfig = require ( "./utils/serializeTSConfig" ) ;
5+ const serializeRollupConfig = require ( "./utils/serializeRollupConfig" ) ;
56const prompts = require ( "./prompts" ) ;
67
78module . exports = {
@@ -35,7 +36,6 @@ module.exports = {
3536 description : this . answers . description ,
3637 version : "0.0.1" ,
3738 main : "lib/index.js" ,
38- module : "lib/index.es.js" ,
3939 types : "lib/index.d.ts" ,
4040 files : [ "lib" ] ,
4141 publishConfig : { access : "public" } ,
@@ -76,6 +76,61 @@ module.exports = {
7676 peerDependencies : [ { react : "*" } , { "react-dom" : "*" } ]
7777 } ;
7878
79+ const rollupConfig = {
80+ input : "./src/index.tsx" ,
81+ output : [ ] ,
82+ plugins : [
83+ `progress({clearLines: false})` ,
84+ `del({targets: [
85+ "lib/*"
86+ ]})` ,
87+ `commonjs({
88+ namedExports: {}
89+ })` ,
90+ `typescript()` ,
91+ `minify()` ,
92+ `cleanup()`
93+ ] ,
94+ external : [
95+ "...Object.keys(pkg.dependencies || {})" ,
96+ "...Object.keys(pkg.peerDependencies || {})"
97+ ]
98+ } ;
99+
100+ if ( this . answers . umd ) {
101+ if ( ! this . answers . umd_name || ! this . answers . umd_name . trim ( ) ) {
102+ console . error (
103+ this
104+ . chalk `{red No global UMD name defined while UMD module build is enabled}`
105+ ) ;
106+ process . exit ( 1 ) ;
107+ }
108+ const umdOutput = `{
109+ file: pkg.main,
110+ format: "umd",
111+ name: "${ this . answers . umd_name } ",
112+ globals: {
113+ react: "React"
114+ }
115+ }` ;
116+ rollupConfig . output . push ( umdOutput ) ;
117+ } else {
118+ const cjsOutput = `{
119+ file: pkg.main,
120+ format: "cjs"
121+ }` ;
122+ rollupConfig . output . push ( cjsOutput ) ;
123+ }
124+
125+ if ( this . answers . es ) {
126+ package . module = "lib/index.es.js" ;
127+ const esOutput = `{
128+ file: pkg.module,
129+ format: "es"
130+ }` ;
131+ rollupConfig . output . push ( esOutput ) ;
132+ }
133+
79134 if ( this . answers . tests ) {
80135 tsconfig . includes . push ( "./__tests__" ) ;
81136 package . scripts . push ( { test : "jest" } ) ;
@@ -148,6 +203,7 @@ module.exports = {
148203 return {
149204 tsconfig : serializeTSConfig ( tsconfig ) ,
150205 package : serializePackage ( package ) ,
206+ rollupConfig : serializeRollupConfig ( rollupConfig ) ,
151207 pmRun
152208 } ;
153209 } ,
0 commit comments