@@ -7,52 +7,158 @@ const binaryFolder = path.join(__dirname, "..", "dist", "index.js");
7
7
8
8
it ( "can bundle a simple project" , async ( ) => {
9
9
await fse . remove ( path . resolve ( fixturesFolder , "simple" , "dist" ) ) ;
10
- const result = await execa ( "node" , [ binaryFolder , "build" , "--single" ] , {
10
+ const result = await execa ( "node" , [ binaryFolder , "build" ] , {
11
11
cwd : path . resolve ( fixturesFolder , "simple" )
12
12
} ) ;
13
13
expect ( result . exitCode ) . toEqual ( 0 ) ;
14
- const indexJsFilePath = path . resolve (
15
- fixturesFolder ,
16
- "simple" ,
17
- "dist" ,
18
- "index.js"
14
+ const baseDistPath = path . resolve ( fixturesFolder , "simple" , "dist" ) ;
15
+ const indexJsFilePath = path . resolve ( baseDistPath , "index.js" ) ;
16
+ const indexMjsFilePath = path . resolve ( baseDistPath , "index.mjs" ) ;
17
+ const packageJsonFilePath = path . resolve ( baseDistPath , "package.json" ) ;
18
+
19
+ expect ( fse . readFileSync ( indexJsFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
20
+ "'use strict';
21
+
22
+ Object.defineProperty(exports, '__esModule', { value: true });
23
+
24
+ var someNumber = 1;
25
+
26
+ exports.someNumber = someNumber;
27
+ "
28
+ ` ) ;
29
+ expect ( fse . readFileSync ( indexMjsFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
30
+ "var someNumber = 1;
31
+
32
+ export { someNumber };
33
+ "
34
+ ` ) ;
35
+ expect ( fse . readFileSync ( packageJsonFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
36
+ "{
37
+ \\"name\\": \\"simple\\",
38
+ \\"main\\": \\"index.js\\",
39
+ \\"module\\": \\"index.mjs\\",
40
+ \\"typings\\": \\"index.d.ts\\",
41
+ \\"typescript\\": {
42
+ \\"definition\\": \\"index.d.ts\\"
43
+ },
44
+ \\"exports\\": {
45
+ \\".\\": {
46
+ \\"require\\": \\"./index.js\\",
47
+ \\"import\\": \\"./index.mjs\\"
48
+ },
49
+ \\"./*\\": {
50
+ \\"require\\": \\"./*.js\\",
51
+ \\"import\\": \\"./*.mjs\\"
52
+ },
53
+ \\"./package.json\\": \\"./package.json\\"
54
+ }
55
+ }
56
+ "
57
+ ` ) ;
58
+ } ) ;
59
+
60
+ it ( "can build a monorepo project" , async ( ) => {
61
+ await fse . remove (
62
+ path . resolve ( fixturesFolder , "simple-monorepo" , "a" , "dist" )
19
63
) ;
20
- const indexMjsFilePath = path . resolve (
64
+ await fse . remove (
65
+ path . resolve ( fixturesFolder , "simple-monorepo" , "b" , "dist" )
66
+ ) ;
67
+ await execa ( "tsc" , {
68
+ cwd : path . resolve ( fixturesFolder , "simple-monorepo" )
69
+ } ) ;
70
+ const result = await execa ( "node" , [ binaryFolder , "build" ] , {
71
+ cwd : path . resolve ( fixturesFolder , "simple-monorepo" )
72
+ } ) ;
73
+ expect ( result . exitCode ) . toEqual ( 0 ) ;
74
+ const baseDistAPath = path . resolve (
21
75
fixturesFolder ,
22
- "simple" ,
23
- "dist" ,
24
- "index.js"
76
+ "simple-monorepo" ,
77
+ "packages" ,
78
+ "a" ,
79
+ "dist"
25
80
) ;
26
- const packageJsonFilePath = path . resolve (
81
+ const baseDistBPath = path . resolve (
27
82
fixturesFolder ,
28
- "simple" ,
29
- "dist" ,
30
- "package.json"
83
+ "simple-monorepo" ,
84
+ "packages" ,
85
+ "b" ,
86
+ "dist"
31
87
) ;
88
+ const files = {
89
+ a : {
90
+ "index.js" : path . resolve ( baseDistAPath , "index.js" ) ,
91
+ "index.mjs" : path . resolve ( baseDistAPath , "index.mjs" ) ,
92
+ "package.json" : path . resolve ( baseDistAPath , "package.json" )
93
+ } ,
94
+ b : {
95
+ "index.js" : path . resolve ( baseDistBPath , "index.js" ) ,
96
+ "index.mjs" : path . resolve ( baseDistBPath , "index.mjs" ) ,
97
+ "package.json" : path . resolve ( baseDistBPath , "package.json" )
98
+ }
99
+ } ;
32
100
33
- expect ( fse . readFileSync ( indexJsFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
101
+ expect ( fse . readFileSync ( files . a [ "index.js" ] , "utf8" ) ) . toMatchInlineSnapshot ( `
34
102
"'use strict';
35
103
36
104
Object.defineProperty(exports, '__esModule', { value: true });
37
105
38
- var someNumber = 1 ;
106
+ const a = \\"WUP\\" ;
39
107
40
- exports.someNumber = someNumber ;
108
+ exports.a = a ;
41
109
"
42
110
` ) ;
43
- expect ( fse . readFileSync ( indexMjsFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
111
+ expect ( fse . readFileSync ( files . a [ "index.mjs" ] , "utf8" ) ) . toMatchInlineSnapshot ( `
112
+ "const a = \\"WUP\\";
113
+
114
+ export { a };
115
+ "
116
+ ` ) ;
117
+ expect ( fse . readFileSync ( files . a [ "package.json" ] , "utf8" ) )
118
+ . toMatchInlineSnapshot ( `
119
+ "{
120
+ \\"name\\": \\"a\\",
121
+ \\"main\\": \\"index.js\\",
122
+ \\"module\\": \\"index.mjs\\",
123
+ \\"typings\\": \\"index.d.ts\\",
124
+ \\"typescript\\": {
125
+ \\"definition\\": \\"index.d.ts\\"
126
+ },
127
+ \\"exports\\": {
128
+ \\".\\": {
129
+ \\"require\\": \\"./index.js\\",
130
+ \\"import\\": \\"./index.mjs\\"
131
+ },
132
+ \\"./*\\": {
133
+ \\"require\\": \\"./*.js\\",
134
+ \\"import\\": \\"./*.mjs\\"
135
+ },
136
+ \\"./package.json\\": \\"./package.json\\"
137
+ }
138
+ }
139
+ "
140
+ ` ) ;
141
+
142
+ expect ( fse . readFileSync ( files . b [ "index.js" ] , "utf8" ) ) . toMatchInlineSnapshot ( `
44
143
"'use strict';
45
144
46
145
Object.defineProperty(exports, '__esModule', { value: true });
47
146
48
- var someNumber = 1 ;
147
+ const b = \\"SUP\\" ;
49
148
50
- exports.someNumber = someNumber ;
149
+ exports.b = b ;
51
150
"
52
151
` ) ;
53
- expect ( fse . readFileSync ( packageJsonFilePath , "utf8" ) ) . toMatchInlineSnapshot ( `
152
+ expect ( fse . readFileSync ( files . b [ "index.mjs" ] , "utf8" ) ) . toMatchInlineSnapshot ( `
153
+ "const b = \\"SUP\\";
154
+
155
+ export { b };
156
+ "
157
+ ` ) ;
158
+ expect ( fse . readFileSync ( files . b [ "package.json" ] , "utf8" ) )
159
+ . toMatchInlineSnapshot ( `
54
160
"{
55
- \\"name\\": \\"simple \\",
161
+ \\"name\\": \\"b \\",
56
162
\\"main\\": \\"index.js\\",
57
163
\\"module\\": \\"index.mjs\\",
58
164
\\"typings\\": \\"index.d.ts\\",
0 commit comments