@@ -14,13 +14,17 @@ cd "$(dirname "$0")"
14
14
15
15
# CLI and app temporary locations
16
16
# http://unix.stackexchange.com/a/84980
17
- temp_cli_path=` mktemp -d 2> /dev/null || mktemp -d -t ' temp_cli_path' `
18
17
temp_app_path=` mktemp -d 2> /dev/null || mktemp -d -t ' temp_app_path' `
18
+ custom_registry_url=http://localhost:4873
19
+ original_npm_registry_url=` npm get registry`
20
+ original_yarn_registry_url=` yarn config get registry`
19
21
20
22
function cleanup {
21
23
echo ' Cleaning up.'
22
24
cd " $root_path "
23
- rm -rf " $temp_cli_path " " $temp_app_path "
25
+ rm -rf " $temp_app_path "
26
+ npm set registry " $original_npm_registry_url "
27
+ yarn config set registry " $original_yarn_registry_url "
24
28
}
25
29
26
30
# Error messages are redirected to stderr
@@ -55,10 +59,6 @@ function checkDependencies {
55
59
fi
56
60
}
57
61
58
- function create_react_app {
59
- node " $temp_cli_path " /node_modules/create-react-app/index.js $*
60
- }
61
-
62
62
# Exit the script with a helpful error message when any error is encountered
63
63
trap ' set +x; handle_error $LINENO $BASH_COMMAND' ERR
64
64
@@ -72,98 +72,82 @@ set -x
72
72
cd ..
73
73
root_path=$PWD
74
74
75
- # Clear cache to avoid issues with incorrect packages being used
76
- if hash yarnpkg 2> /dev/null
77
- then
78
- # AppVeyor uses an old version of yarn.
79
- # Once updated to 0.24.3 or above, the workaround can be removed
80
- # and replaced with `yarnpkg cache clean`
81
- # Issues:
82
- # https://github.com/yarnpkg/yarn/issues/2591
83
- # https://github.com/appveyor/ci/issues/1576
84
- # https://github.com/facebookincubator/create-react-app/pull/2400
85
- # When removing workaround, you may run into
86
- # https://github.com/facebookincubator/create-react-app/issues/2030
87
- case " $( uname -s) " in
88
- * CYGWIN* |MSYS* |MINGW* ) yarn=yarn.cmd;;
89
- * ) yarn=yarnpkg;;
90
- esac
91
- $yarn cache clean
92
- fi
93
-
94
75
if hash npm 2> /dev/null
95
76
then
96
- # npm 5 is too buggy right now
97
- if [ $( npm -v | head -c 1) -eq 5 ]; then
98
- npm i -g npm@^4.x
99
- fi ;
77
+ npm i -g npm@latest
100
78
npm cache clean || npm cache verify
101
79
fi
102
80
103
- # Prevent bootstrap, we only want top-level dependencies
104
- cp package.json package.json.bak
105
- grep -v " postinstall" package.json > temp && mv temp package.json
106
- npm install
107
- mv package.json.bak package.json
81
+ # Bootstrap monorepo
82
+ yarn
108
83
109
- if [ " $USE_YARN " = " yes" ]
110
- then
111
- # Install Yarn so that the test can use it to install packages.
112
- npm install -g yarn
113
- yarn cache clean
114
- fi
84
+ # ******************************************************************************
85
+ # First, publish the monorepo.
86
+ # ******************************************************************************
87
+
88
+ # Start local registry
89
+ tmp_registry_log=` mktemp`
90
+ nohup npx
[email protected] & > $tmp_registry_log &
91
+ # Wait for `verdaccio` to boot
92
+ grep -q ' http address' <( tail -f $tmp_registry_log )
115
93
116
- # We removed the postinstall, so do it manually
117
- node bootstrap.js
94
+ # Set registry to local registry
95
+ npm set registry " $custom_registry_url "
96
+ yarn config set registry " $custom_registry_url "
118
97
119
- cd packages/react-error-overlay/
120
- npm run build:prod
121
- cd ../..
98
+ # Login so we can publish packages
99
+ npx
[email protected] -u user -p password -e
[email protected] -r
" $custom_registry_url " --quotes
100
+
101
+ # Publish the monorepo
102
+ git clean -df
103
+ ./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest
122
104
123
105
# ******************************************************************************
124
- # First, pack and install create-react-app.
106
+ # Test --scripts-version with a version number
125
107
# ******************************************************************************
126
108
127
- # Pack CLI
128
- cd " $root_path " /packages/ create-react-app
129
- cli_path= $PWD / ` npm pack `
109
+ cd " $temp_app_path "
110
+ npx create-react-app --scripts-version=1.0.17 test-app-version-number
111
+ cd test-app-version-number
130
112
131
- # Install the CLI in a temporary location
132
- cd " $temp_cli_path "
133
- npm install " $cli_path "
113
+ # Check corresponding scripts version is installed.
114
+ exists node_modules/react-scripts
115
+ grep ' "version": "1.0.17"' node_modules/react-scripts/package.json
116
+ checkDependencies
134
117
135
118
# ******************************************************************************
136
- # Test --scripts-version with a version number
119
+ # Test --use-npm flag
137
120
# ******************************************************************************
138
121
139
122
cd " $temp_app_path "
140
- create_react_app -- scripts-version=0.4.0 test-app-version-number
141
- cd test-app-version-number
123
+ npx create-react-app --use-npm -- scripts-version=1.0.17 test-use-npm-flag
124
+ cd test-use-npm-flag
142
125
143
126
# Check corresponding scripts version is installed.
144
127
exists node_modules/react-scripts
145
- grep ' "version": "0.4.0"' node_modules/react-scripts/package.json
128
+ [ ! -e " yarn.lock" ] && echo " yarn.lock correctly does not exist"
129
+ grep ' "version": "1.0.17"' node_modules/react-scripts/package.json
146
130
checkDependencies
147
131
148
132
# ******************************************************************************
149
133
# Test --scripts-version with a tarball url
150
134
# ******************************************************************************
151
135
152
136
cd " $temp_app_path "
153
- create_react_app -- scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-0.4.0 .tgz test-app-tarball-url
137
+ npx create-react-app -- scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17 .tgz test-app-tarball-url
154
138
cd test-app-tarball-url
155
139
156
140
# Check corresponding scripts version is installed.
157
141
exists node_modules/react-scripts
158
- grep ' "version": "0.4.0 "' node_modules/react-scripts/package.json
142
+ grep ' "version": "1.0.17 "' node_modules/react-scripts/package.json
159
143
checkDependencies
160
144
161
145
# ******************************************************************************
162
146
# Test --scripts-version with a custom fork of react-scripts
163
147
# ******************************************************************************
164
148
165
149
cd " $temp_app_path "
166
- create_react_app --scripts-version=react-scripts-fork test-app-fork
150
+ npx create-react-app --scripts-version=react-scripts-fork test-app-fork
167
151
cd test-app-fork
168
152
169
153
# Check corresponding scripts version is installed.
@@ -175,7 +159,7 @@ exists node_modules/react-scripts-fork
175
159
176
160
cd " $temp_app_path "
177
161
# we will install a non-existing package to simulate a failed installataion.
178
- create_react_app --scripts-version=` date +%s` test-app-should-not-exist || true
162
+ npx create-react-app --scripts-version=` date +%s` test-app-should-not-exist || true
179
163
# confirm that the project folder was deleted
180
164
test ! -d test-app-should-not-exist
181
165
@@ -187,7 +171,7 @@ cd "$temp_app_path"
187
171
mkdir test-app-should-remain
188
172
echo ' ## Hello' > ./test-app-should-remain/README.md
189
173
# we will install a non-existing package to simulate a failed installataion.
190
- create_react_app --scripts-version=` date +%s` test-app-should-remain || true
174
+ npx create-react-app --scripts-version=` date +%s` test-app-should-remain || true
191
175
# confirm the file exist
192
176
test -e test-app-should-remain/README.md
193
177
# confirm only README.md is the only file in the directory
201
185
202
186
cd $temp_app_path
203
187
curl " https://registry.npmjs.org/@enoah_netzach/react-scripts/-/react-scripts-0.9.0.tgz" -o enoah-scripts-0.9.0.tgz
204
- create_react_app --scripts-version=$temp_app_path /enoah-scripts-0.9.0.tgz test-app-scoped-fork-tgz
188
+ npx create-react-app --scripts-version=$temp_app_path /enoah-scripts-0.9.0.tgz test-app-scoped-fork-tgz
205
189
cd test-app-scoped-fork-tgz
206
190
207
191
# Check corresponding scripts version is installed.
@@ -216,22 +200,22 @@ cd "$temp_app_path"
216
200
mkdir test-app-nested-paths-t1
217
201
cd test-app-nested-paths-t1
218
202
mkdir -p test-app-nested-paths-t1/aa/bb/cc/dd
219
- create_react_app test-app-nested-paths-t1/aa/bb/cc/dd
203
+ npx create-react-app test-app-nested-paths-t1/aa/bb/cc/dd
220
204
cd test-app-nested-paths-t1/aa/bb/cc/dd
221
- npm start -- --smoke-test
205
+ yarn start --smoke-test
222
206
223
207
# Testing a path that does not exist
224
208
cd " $temp_app_path "
225
- create_react_app test-app-nested-paths-t2/aa/bb/cc/dd
209
+ npx create-react-app test-app-nested-paths-t2/aa/bb/cc/dd
226
210
cd test-app-nested-paths-t2/aa/bb/cc/dd
227
- npm start -- --smoke-test
211
+ yarn start --smoke-test
228
212
229
213
# Testing a path that is half exists
230
214
cd " $temp_app_path "
231
215
mkdir -p test-app-nested-paths-t3/aa
232
- create_react_app test-app-nested-paths-t3/aa/bb/cc/dd
216
+ npx create-react-app test-app-nested-paths-t3/aa/bb/cc/dd
233
217
cd test-app-nested-paths-t3/aa/bb/cc/dd
234
- npm start -- --smoke-test
218
+ yarn start --smoke-test
235
219
236
220
# Cleanup
237
- cleanup
221
+ cleanup
0 commit comments