Move npm output from build/packages/* to build/node_modules/* (#11962)
* Move build/packages/* to build/node_modules/* This fixes Node resolution in that folder and lets us require() packages in it in Node shell for manual testing. * Link fixtures to packages/node_modules This updates the location and also uses link: instead of file: to avoid Yarn caching the folder contents.
Dan Abramov committed
Jan 4, 2018 at 19:01 UTC
1ebeb0542fd0c3741c31098a9d9a8859d9b8176a
22 files changed
+105
-148
fixtures/art/package.json
+3
-3
@@ -5,9 +5,9 @@
5
"babel-plugin-transform-class-properties": "^6.24.1",
6
"babel-preset-es2015": "^6.6.0",
7
"babel-preset-react": "^6.5.0",
8
- "react": "file:../../build/packages/react",
9
- "react-art": "file:../../build/packages/react-art",
10
- "react-dom": "file:../../build/packages/react-dom",
8
+ "react": "link:../../build/node_modules/react",
9
+ "react-art": "link:../../build/node_modules/react-art/",
10
+ "react-dom": "link:../../build/node_modules/react-dom",
11
"webpack": "^1.14.0"
12
},
13
"scripts": {
fixtures/art/yarn.lock
+9
-23
@@ -1742,31 +1742,17 @@ rc@^1.1.7:
1742
minimist "^1.2.0"
1743
strip-json-comments "~2.0.1"
1744
1745
-"react-art@file:../../build/packages/react-art":
1746
- version "16.0.0"
1747
- dependencies:
1748
- art "^0.10.1"
1749
- create-react-class "^15.6.2"
1750
- fbjs "^0.8.16"
1751
- loose-envify "^1.1.0"
1752
- object-assign "^4.1.1"
1753
- prop-types "^15.6.0"
1745
+"react-art@link:../../build/node_modules/react-art":
1746
+ version "0.0.0"
1747
+ uid ""
1748
1755
-"react-dom@file:../../build/packages/react-dom":
1756
- version "16.0.0"
1757
- dependencies:
1758
- fbjs "^0.8.16"
1759
- loose-envify "^1.1.0"
1760
- object-assign "^4.1.1"
1761
- prop-types "^15.6.0"
1749
+"react-dom@link:../../build/node_modules/react-dom":
1750
+ version "0.0.0"
1751
+ uid ""
1752
1763
-"react@file:../../build/packages/react":
1764
- version "16.0.0"
1765
- dependencies:
1766
- fbjs "^0.8.16"
1767
- loose-envify "^1.1.0"
1768
- object-assign "^4.1.1"
1769
- prop-types "^15.6.0"
1753
+"react@link:../../build/node_modules/react":
1754
+ version "0.0.0"
1755
+ uid ""
1756
1757
"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.6:
1758
version "2.2.6"
fixtures/packaging/browserify/dev/package.json
+2
-2
@@ -3,8 +3,8 @@
3
"name": "browserify-dev-fixture",
4
"dependencies": {
5
"browserify": "^13.3.0",
6
- "react": "file:../../../../build/packages/react",
7
- "react-dom": "file:../../../../build/packages/react-dom"
6
+ "react": "link:../../../../build/node_modules/react",
7
+ "react-dom": "link:../../../../build/node_modules/react-dom"
8
},
9
"scripts": {
10
"build": "rm -f output.js && browserify ./input.js -o output.js"
fixtures/packaging/browserify/dev/yarn.lock
+6
-14
@@ -739,21 +739,13 @@ randombytes@^2.0.0, randombytes@^2.0.1:
739
dependencies:
740
safe-buffer "^5.1.0"
741
742
-"react-dom@file:../../../../build/packages/react-dom":
743
- version "16.0.0"
744
- dependencies:
745
- fbjs "^0.8.16"
746
- loose-envify "^1.1.0"
747
- object-assign "^4.1.1"
748
- prop-types "^15.6.0"
742
+"react-dom@link:../../../../build/node_modules/react-dom":
743
+ version "0.0.0"
744
+ uid ""
745
750
-"react@file:../../../../build/packages/react":
751
- version "16.0.0"
752
- dependencies:
753
- fbjs "^0.8.16"
754
- loose-envify "^1.1.0"
755
- object-assign "^4.1.1"
756
- prop-types "^15.6.0"
746
+"react@link:../../../../build/node_modules/react":
747
+ version "0.0.0"
748
+ uid ""
749
750
read-only-stream@^2.0.0:
751
version "2.0.0"
fixtures/packaging/browserify/prod/package.json
+2
-2
@@ -3,8 +3,8 @@
3
"name": "browserify-prod-fixture",
4
"dependencies": {
5
"browserify": "^13.3.0",
6
- "react": "file:../../../../build/packages/react",
7
- "react-dom": "file:../../../../build/packages/react-dom"
6
+ "react": "link:../../../../build/node_modules/react",
7
+ "react-dom": "link:../../../../build/node_modules/react-dom"
8
},
9
"scripts": {
10
"build": "rm -f output.js && browserify ./input.js -g [envify --NODE_ENV 'production'] -o output.js"
fixtures/packaging/browserify/prod/yarn.lock
+6
-14
@@ -750,21 +750,13 @@ randombytes@^2.0.0, randombytes@^2.0.1:
750
dependencies:
751
safe-buffer "^5.1.0"
752
753
-"react-dom@file:../../../../build/packages/react-dom":
754
- version "16.0.0"
755
- dependencies:
756
- fbjs "^0.8.16"
757
- loose-envify "^1.1.0"
758
- object-assign "^4.1.1"
759
- prop-types "^15.6.0"
753
+"react-dom@link:../../../../build/node_modules/react-dom":
754
+ version "0.0.0"
755
+ uid ""
756
761
-"react@file:../../../../build/packages/react":
762
- version "16.0.0"
763
- dependencies:
764
- fbjs "^0.8.16"
765
- loose-envify "^1.1.0"
766
- object-assign "^4.1.1"
767
- prop-types "^15.6.0"
757
+"react@link:../../../../build/node_modules/react":
758
+ version "0.0.0"
759
+ uid ""
760
761
read-only-stream@^2.0.0:
762
version "2.0.0"
fixtures/packaging/brunch/dev/package.json
+3
-3
@@ -4,10 +4,10 @@
4
"devDependencies": {
5
"brunch": "^2.9.1",
6
"javascript-brunch": "^2.0.0",
7
- "react": "file:../../../../build/packages/react",
8
- "react-dom": "file:../../../../build/packages/react-dom"
7
+ "react": "link:../../../../build/node_modules/react",
8
+ "react-dom": "link:../../../../build/node_modules/react-dom"
9
},
10
"scripts": {
11
"build": "rm -rf public && brunch build"
12
}
13
-}
\ No newline at end of file
13
+}
fixtures/packaging/brunch/dev/yarn.lock
+6
-14
@@ -1704,21 +1704,13 @@ rc@^1.1.7:
1704
minimist "^1.2.0"
1705
strip-json-comments "~2.0.1"
1706
1707
-"react-dom@file:../../../../build/packages/react-dom":
1708
- version "16.0.0"
1709
- dependencies:
1710
- fbjs "^0.8.16"
1711
- loose-envify "^1.1.0"
1712
- object-assign "^4.1.1"
1713
- prop-types "^15.6.0"
1707
+"react-dom@link:../../../../build/node_modules/react-dom":
1708
+ version "0.0.0"
1709
+ uid ""
1710
1715
-"react@file:../../../../build/packages/react":
1716
- version "16.0.0"
1717
- dependencies:
1718
- fbjs "^0.8.16"
1719
- loose-envify "^1.1.0"
1720
- object-assign "^4.1.1"
1721
- prop-types "^15.6.0"
1711
+"react@link:../../../../build/node_modules/react":
1712
+ version "0.0.0"
1713
+ uid ""
1714
1715
read-components@~0.7:
1716
version "0.7.0"
fixtures/packaging/brunch/prod/package.json
+3
-3
@@ -4,10 +4,10 @@
4
"devDependencies": {
5
"brunch": "^2.9.1",
6
"javascript-brunch": "^2.0.0",
7
- "react": "file:../../../../build/packages/react",
8
- "react-dom": "file:../../../../build/packages/react-dom"
7
+ "react": "link:../../../../build/node_modules/react",
8
+ "react-dom": "link:../../../../build/node_modules/react-dom"
9
},
10
"scripts": {
11
"build": "rm -rf public && brunch build -p"
12
}
13
-}
\ No newline at end of file
13
+}
fixtures/packaging/brunch/prod/yarn.lock
+6
-14
@@ -1704,21 +1704,13 @@ rc@^1.1.7:
1704
minimist "^1.2.0"
1705
strip-json-comments "~2.0.1"
1706
1707
-"react-dom@file:../../../../build/packages/react-dom":
1708
- version "16.0.0"
1709
- dependencies:
1710
- fbjs "^0.8.16"
1711
- loose-envify "^1.1.0"
1712
- object-assign "^4.1.1"
1713
- prop-types "^15.6.0"
1707
+"react-dom@link:../../../../build/node_modules/react-dom":
1708
+ version "0.0.0"
1709
+ uid ""
1710
1715
-"react@file:../../../../build/packages/react":
1716
- version "16.0.0"
1717
- dependencies:
1718
- fbjs "^0.8.16"
1719
- loose-envify "^1.1.0"
1720
- object-assign "^4.1.1"
1721
- prop-types "^15.6.0"
1711
+"react@link:../../../../build/node_modules/react":
1712
+ version "0.0.0"
1713
+ uid ""
1714
1715
read-components@~0.7:
1716
version "0.7.0"
fixtures/packaging/webpack-alias/dev/config.js
+1
-1
@@ -6,7 +6,7 @@ module.exports = {
6
filename: 'output.js',
7
},
8
resolve: {
9
- root: path.resolve('../../../../build/packages'),
9
+ root: path.resolve('../../../../build/node_modules'),
10
alias: {
11
react: 'react/umd/react.development',
12
'react-dom': 'react-dom/umd/react-dom.development',
fixtures/packaging/webpack-alias/prod/config.js
+1
-1
@@ -6,7 +6,7 @@ module.exports = {
6
filename: 'output.js',
7
},
8
resolve: {
9
- root: path.resolve('../../../../build/packages'),
9
+ root: path.resolve('../../../../build/node_modules'),
10
alias: {
11
react: 'react/umd/react.production.min',
12
'react-dom': 'react-dom/umd/react-dom.production.min',
fixtures/packaging/webpack/dev/config.js
+1
-1
@@ -6,6 +6,6 @@ module.exports = {
6
filename: 'output.js',
7
},
8
resolve: {
9
- root: path.resolve('../../../../build/packages/'),
9
+ root: path.resolve('../../../../build/node_modules/'),
10
},
11
};
fixtures/packaging/webpack/prod/config.js
+1
-1
@@ -7,7 +7,7 @@ module.exports = {
7
filename: 'output.js',
8
},
9
resolve: {
10
- root: path.resolve('../../../../build/packages/'),
10
+ root: path.resolve('../../../../build/node_modules/'),
11
},
12
plugins: [
13
new webpack.DefinePlugin({
fixtures/ssr/package.json
+2
-2
@@ -12,8 +12,8 @@
12
"ignore-styles": "^5.0.1",
13
"import-export": "^1.0.1",
14
"node-fetch": "^1.6.3",
15
- "react": "file:../../build/packages/react",
16
- "react-dom": "file:../../build/packages/react-dom"
15
+ "react": "link:../../build/node_modules/react",
16
+ "react-dom": "link:../../build/node_modules/react-dom"
17
},
18
"scripts": {
19
"start": "concurrently \"npm run start:server\" \"npm run start:client\"",
fixtures/ssr/yarn.lock
+6
-14
@@ -4200,13 +4200,9 @@ react-dev-utils@^0.5.2:
4200
sockjs-client "1.0.1"
4201
strip-ansi "3.0.1"
4202
4203
-"react-dom@file:../../build/packages/react-dom":
4204
- version "16.0.0"
4205
- dependencies:
4206
- fbjs "^0.8.16"
4207
- loose-envify "^1.1.0"
4208
- object-assign "^4.1.1"
4209
- prop-types "^15.6.0"
4203
+"react-dom@link:../../build/node_modules/react-dom":
4204
+ version "0.0.0"
4205
+ uid ""
4206
4207
react-scripts@0.9.5:
4208
version "0.9.5"
@@ -4253,13 +4249,9 @@ react-scripts@0.9.5:
4249
optionalDependencies:
4250
fsevents "1.0.17"
4251
4256
-"react@file:../../build/packages/react":
4257
- version "16.0.0"
4258
- dependencies:
4259
- fbjs "^0.8.16"
4260
- loose-envify "^1.1.0"
4261
- object-assign "^4.1.1"
4262
- prop-types "^15.6.0"
4252
+"react@link:../../build/node_modules/react":
4253
+ version "0.0.0"
4254
+ uid ""
4255
4256
read-pkg-up@^1.0.1:
4257
version "1.0.1"
scripts/jest/config.build.js
+4
-2
@@ -17,9 +17,11 @@ const packages = readdirSync(packagesRoot).filter(dir => {
17
const moduleNameMapper = {};
18
packages.forEach(name => {
19
// Root entry point
20
- moduleNameMapper[`^${name}$`] = `<rootDir>/build/packages/${name}`;
20
+ moduleNameMapper[`^${name}$`] = `<rootDir>/build/node_modules/${name}`;
21
// Named entry points
22
- moduleNameMapper[`^${name}/(.*)$`] = `<rootDir>/build/packages/${name}/$1`;
22
+ moduleNameMapper[`^${name}/(.*)$`] = `<rootDir>/build/node_modules/${
23
+ name
24
+ }/$1`;
25
});
26
27
module.exports = Object.assign({}, sourceConfig, {
scripts/release/publish-commands/check-build-status.js
+7
-1
@@ -8,7 +8,13 @@ const {readJson} = require('fs-extra');
8
const {join} = require('path');
9
10
module.exports = async ({cwd, version}) => {
11
- const packagePath = join(cwd, 'build', 'packages', 'react', 'package.json');
11
+ const packagePath = join(
12
+ cwd,
13
+ 'build',
14
+ 'node_modules',
15
+ 'react',
16
+ 'package.json'
17
+ );
18
19
if (!existsSync(packagePath)) {
20
throw Error('No build found');
scripts/release/publish-commands/publish-to-npm.js
+2
-2
@@ -15,13 +15,13 @@ const push = async ({cwd, dry, packages, version}) => {
15
16
const publishProject = async project => {
17
try {
18
- const path = join(cwd, 'build', 'packages', project);
18
+ const path = join(cwd, 'build', 'node_modules', project);
19
await execUnlessDry(`npm publish --tag ${tag}`, {cwd: path, dry});
20
21
const packagePath = join(
22
cwd,
23
'build',
24
- 'packages',
24
+ 'node_modules',
25
project,
26
'package.json'
27
);
scripts/rollup/packaging.js
+11
-11
@@ -31,11 +31,11 @@ function getBundleOutputPaths(bundleType, filename, packageName) {
31
switch (bundleType) {
32
case NODE_DEV:
33
case NODE_PROD:
34
- return [`build/packages/${packageName}/cjs/${filename}`];
34
+ return [`build/node_modules/${packageName}/cjs/${filename}`];
35
case UMD_DEV:
36
case UMD_PROD:
37
return [
38
- `build/packages/${packageName}/umd/${filename}`,
38
+ `build/node_modules/${packageName}/umd/${filename}`,
39
`build/dist/${filename}`,
40
];
41
case FB_DEV:
@@ -101,7 +101,7 @@ function getTarOptions(tgzName, packageName) {
101
const CONTENTS_FOLDER = 'package';
102
return {
103
src: tgzName,
104
- dest: `build/packages/${packageName}`,
104
+ dest: `build/node_modules/${packageName}`,
105
tar: {
106
entries: [CONTENTS_FOLDER],
107
map(header) {
@@ -115,31 +115,31 @@ function getTarOptions(tgzName, packageName) {
115
116
async function prepareNpmPackage(name) {
117
await Promise.all([
118
- asyncCopyTo('LICENSE', `build/packages/${name}/LICENSE`),
118
+ asyncCopyTo('LICENSE', `build/node_modules/${name}/LICENSE`),
119
asyncCopyTo(
120
`packages/${name}/package.json`,
121
- `build/packages/${name}/package.json`
121
+ `build/node_modules/${name}/package.json`
122
),
123
asyncCopyTo(
124
`packages/${name}/README.md`,
125
- `build/packages/${name}/README.md`
125
+ `build/node_modules/${name}/README.md`
126
),
127
- asyncCopyTo(`packages/${name}/npm`, `build/packages/${name}`),
127
+ asyncCopyTo(`packages/${name}/npm`, `build/node_modules/${name}`),
128
]);
129
const tgzName = (await asyncExecuteCommand(
130
- `npm pack build/packages/${name}`
130
+ `npm pack build/node_modules/${name}`
131
)).trim();
132
- await asyncRimRaf(`build/packages/${name}`);
132
+ await asyncRimRaf(`build/node_modules/${name}`);
133
await asyncExtractTar(getTarOptions(tgzName, name));
134
unlinkSync(tgzName);
135
}
136
137
async function prepareNpmPackages() {
138
- if (!existsSync('build/packages')) {
138
+ if (!existsSync('build/node_modules')) {
139
// We didn't build any npm packages.
140
return;
141
}
142
- const builtPackageFolders = readdirSync('build/packages').filter(
142
+ const builtPackageFolders = readdirSync('build/node_modules').filter(
143
dir => dir.charAt(0) !== '.'
144
);
145
await Promise.all(builtPackageFolders.map(prepareNpmPackage));
scripts/rollup/results.json
+18
-18
@@ -4,8 +4,8 @@
4
"filename": "react.development.js",
5
"bundleType": "UMD_DEV",
6
"packageName": "react",
7
- "size": 55220,
8
- "gzip": 14986
7
+ "size": 55396,
8
+ "gzip": 15025
9
},
10
{
11
"filename": "react.production.min.js",
@@ -18,8 +18,8 @@
18
"filename": "react.development.js",
19
"bundleType": "NODE_DEV",
20
"packageName": "react",
21
- "size": 45636,
22
- "gzip": 12675
21
+ "size": 45812,
22
+ "gzip": 12711
23
},
24
{
25
"filename": "react.production.min.js",
@@ -32,8 +32,8 @@
32
"filename": "React-dev.js",
33
"bundleType": "FB_DEV",
34
"packageName": "react",
35
- "size": 44974,
36
- "gzip": 12197
35
+ "size": 45150,
36
+ "gzip": 12229
37
},
38
{
39
"filename": "React-prod.js",
@@ -46,43 +46,43 @@
46
"filename": "react-dom.development.js",
47
"bundleType": "UMD_DEV",
48
"packageName": "react-dom",
49
- "size": 560424,
50
- "gzip": 132739
49
+ "size": 560105,
50
+ "gzip": 132646
51
},
52
{
53
"filename": "react-dom.production.min.js",
54
"bundleType": "UMD_PROD",
55
"packageName": "react-dom",
56
- "size": 93669,
57
- "gzip": 30753
56
+ "size": 93530,
57
+ "gzip": 30695
58
},
59
{
60
"filename": "react-dom.development.js",
61
"bundleType": "NODE_DEV",
62
"packageName": "react-dom",
63
- "size": 544457,
64
- "gzip": 128965
63
+ "size": 544138,
64
+ "gzip": 128866
65
},
66
{
67
"filename": "react-dom.production.min.js",
68
"bundleType": "NODE_PROD",
69
"packageName": "react-dom",
70
- "size": 92090,
71
- "gzip": 29815
70
+ "size": 91951,
71
+ "gzip": 29748
72
},
73
{
74
"filename": "ReactDOM-dev.js",
75
"bundleType": "FB_DEV",
76
"packageName": "react-dom",
77
- "size": 561931,
78
- "gzip": 131204
77
+ "size": 561584,
78
+ "gzip": 131098
79
},
80
{
81
"filename": "ReactDOM-prod.js",
82
"bundleType": "FB_PROD",
83
"packageName": "react-dom",
84
- "size": 265369,
85
- "gzip": 51278
84
+ "size": 264984,
85
+ "gzip": 51187
86
},
87
{
88
"filename": "react-dom-test-utils.development.js",
scripts/rollup/validate/index.js
+5
-2
@@ -64,11 +64,14 @@ const bundles = [
64
},
65
{
66
format: 'umd',
67
- filePatterns: [`./build/packages/*/umd/*.js`],
67
+ filePatterns: [`./build/node_modules/*/umd/*.js`],
68
},
69
{
70
format: 'cjs',
71
- filePatterns: [`./build/packages/*/*.js`, `./build/packages/*/cjs/*.js`],
71
+ filePatterns: [
72
+ `./build/node_modules/*/*.js`,
73
+ `./build/node_modules/*/cjs/*.js`,
74
+ ],
75
},
76
];
77