@@ -4,175 +4,44 @@ import * as fs from 'fs'
4
4
import * as path from 'path'
5
5
import * as tmp from 'tmp'
6
6
7
- import sh from '../sh'
8
7
import { buildAndPackStardust , createPackageFilename , runIn } from './test-projects'
9
8
10
9
const logger = debug ( 'bundle:rollup' )
11
10
logger . enabled = true
12
11
13
- const STARTER_URL = `https://github.com/rollup/rollup-starter-app.git`
14
-
15
- const appJS = `
16
- import React from "react";
17
- import ReactDOM from "react-dom";
18
- import { Button, Provider, themes } from "@stardust-ui/react";
19
-
20
- ReactDOM.render(
21
- React.createElement(
22
- Provider,
23
- { theme: themes.teams },
24
- React.createElement(Button, { content: "Theming" })
25
- ),
26
- document.getElementById("time-now")
27
- );
28
- `
29
-
30
- const rollupConfig = `
31
- import replace from "rollup-plugin-replace";
32
- import resolve from "rollup-plugin-node-resolve";
33
- import commonjs from "rollup-plugin-commonjs";
34
-
35
- const lodashExports = [
36
- "compact",
37
- "difference",
38
- "each",
39
- "findIndex",
40
- "flow",
41
- "forEach",
42
- "get",
43
- "has",
44
- "filter",
45
- "first",
46
- "includes",
47
- "intersection",
48
- "invoke",
49
- "isArray",
50
- "isEmpty",
51
- "isFunction",
52
- "isNil",
53
- "isObject",
54
- "isPlainObject",
55
- "inRange",
56
- "isUndefined",
57
- "keys",
58
- "last",
59
- "map",
60
- "mapValues",
61
- "merge",
62
- "memoize",
63
- "min",
64
- "pick",
65
- "round",
66
- "set",
67
- "some",
68
- "sortBy",
69
- "startsWith",
70
- "sum",
71
- "take",
72
- "trim",
73
- "without",
74
- "union",
75
- "uniq",
76
- "uniqueId"
77
- ];
78
-
79
- export default {
80
- input: "src/main.js",
81
- output: {
82
- file: "public/bundle.js",
83
- format: "iife",
84
- sourcemap: true
85
- },
86
- plugins: [
87
- replace({
88
- "process.env.NODE_ENV": JSON.stringify("development")
89
- }),
90
- resolve(),
91
- commonjs({
92
- include: "node_modules/**",
93
- namedExports: {
94
- "node_modules/keyboard-key/src/keyboardKey.js": [
95
- "ArrowDown",
96
- "ArrowUp",
97
- "ArrowLeft",
98
- "ArrowRight",
99
- "End",
100
- "Enter",
101
- "Escape",
102
- "Home",
103
- "getCode",
104
- "Spacebar",
105
- "Tab"
106
- ],
107
- "node_modules/lodash/fp.js": lodashExports,
108
- "node_modules/lodash/lodash.js": lodashExports,
109
- "node_modules/prop-types/index.js": [
110
- "any",
111
- "arrayOf",
112
- "bool",
113
- "element",
114
- "func",
115
- "node",
116
- "number",
117
- "object",
118
- "oneOf",
119
- "oneOfType",
120
- "shape",
121
- "string",
122
- "symbol"
123
- ],
124
- "node_modules/react/index.js": [
125
- "Component",
126
- "cloneElement",
127
- "createRef",
128
- "PureComponent",
129
- "Fragment",
130
- "Children",
131
- "createElement",
132
- "isValidElement"
133
- ],
134
- "node_modules/react-dom/index.js": ["createPortal", "findDOMNode"],
135
- "node_modules/react-is/index.js": ["isForwardRef"],
136
- "node_modules/what-input/dist/what-input.js": ["ask"]
137
- }
138
- })
139
- ]
140
- };
141
- `
142
-
143
- task ( 'test:projects:rollup' , async ( ) => {
12
+ task ( 'test:bundlers:rollup' , async ( ) => {
144
13
const packageFilename = createPackageFilename ( )
145
14
146
- try {
147
- await buildAndPackStardust ( packageFilename )
148
- logger ( `✔️Stardust UI package was prepared: ${ packageFilename } ` )
149
-
150
- const tmpDirectory = tmp . dirSync ( { prefix : 'stardust-' } ) . name
151
- logger ( `✔️Temporary directory was created: ${ tmpDirectory } ` )
152
-
153
- await sh ( `git clone ${ STARTER_URL } ${ tmpDirectory } ` )
154
- logger ( `✔️Starter repository was cloned` )
155
-
156
- await runIn ( tmpDirectory ) ( 'yarn' )
157
- logger ( `✔️Initial dependencies were installed` )
158
-
159
- await runIn ( tmpDirectory ) ( 'yarn upgrade --latest --pattern rollup ')
160
- await runIn ( tmpDirectory ) ( ' yarn add rollup-plugin-replace' )
161
- logger ( `✔️Initial dependencies were updated to latest ` )
162
-
163
- await runIn ( tmpDirectory ) ( ' yarn add react react-dom' )
164
- logger ( `✔️React dependencies were installed ` )
165
-
166
- await runIn ( tmpDirectory ) ( `yarn add ${ packageFilename } ` )
167
- logger ( `✔️Stardust UI was added to dependencies` )
168
-
169
- fs . writeFileSync ( path . resolve ( tmpDirectory , 'src' , 'main.js' ) , appJS )
170
- fs . writeFileSync ( path . resolve ( tmpDirectory , 'rollup.config.js' ) , rollupConfig )
171
- logger ( `✔️Source and bundler's config was updated` )
172
-
173
- await runIn ( tmpDirectory ) ( `yarn build` )
174
- logger ( `✔️Example project was successfully built: ${ tmpDirectory } ` )
175
- } finally {
176
- fs . unlinkSync ( packageFilename )
177
- }
15
+ await buildAndPackStardust ( packageFilename )
16
+ logger ( `✔️Stardust UI package was prepared: ${ packageFilename } ` )
17
+
18
+ const tmpDirectory = tmp . dirSync ( { prefix : 'stardust-' } ) . name
19
+ logger ( `✔️Temporary directory was created: ${ tmpDirectory } ` )
20
+
21
+ const dependencies = [
22
+ 'rollup' ,
23
+ 'rollup-plugin-replace' ,
24
+ 'rollup-plugin-commonjs' ,
25
+ 'rollup-plugin-node-resolve' ,
26
+ 'react' ,
27
+ 'react-dom' ,
28
+ ] . join ( ' ')
29
+ await runIn ( tmpDirectory ) ( ` yarn add ${ dependencies } ` )
30
+ logger ( `✔️Dependencies were installed ` )
31
+
32
+ await runIn ( tmpDirectory ) ( ` yarn add ${ packageFilename } ` )
33
+ logger ( `✔️Stardust UI was added to dependencies ` )
34
+
35
+ fs . copyFileSync (
36
+ path . resolve ( __dirname , '..' , 'scaffold' , 'app.js' ) ,
37
+ path . resolve ( tmpDirectory , 'app.js' ) ,
38
+ )
39
+ fs . copyFileSync (
40
+ path . resolve ( __dirname , '..' , 'scaffold' , 'rollup. config.js' ) ,
41
+ path . resolve ( tmpDirectory , 'rollup.config.js' ) ,
42
+ )
43
+ logger ( `✔️Source and bundler's config were created ` )
44
+
45
+ await runIn ( tmpDirectory ) ( `yarn rollup -c` )
46
+ logger ( `✔️Example project was successfully built: ${ tmpDirectory } ` )
178
47
} )
0 commit comments