@@ -14,13 +14,17 @@ cd "$(dirname "$0")"
1414
1515# CLI and app temporary locations
1616# http://unix.stackexchange.com/a/84980
17- temp_cli_path=` mktemp -d 2> /dev/null || mktemp -d -t ' temp_cli_path' `
1817temp_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`
1921
2022function cleanup {
2123 echo ' Cleaning up.'
2224 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 "
2428}
2529
2630# Error messages are redirected to stderr
@@ -55,10 +59,6 @@ function checkDependencies {
5559 fi
5660}
5761
58- function create_react_app {
59- node " $temp_cli_path " /node_modules/create-react-app/index.js $*
60- }
61-
6262# Exit the script with a helpful error message when any error is encountered
6363trap ' set +x; handle_error $LINENO $BASH_COMMAND' ERR
6464
@@ -72,98 +72,82 @@ set -x
7272cd ..
7373root_path=$PWD
7474
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-
9475if hash npm 2> /dev/null
9576then
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
10078 npm cache clean || npm cache verify
10179fi
10280
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
10883
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 verdaccio@2.7.2 & > $tmp_registry_log &
91+ # Wait for `verdaccio` to boot
92+ grep -q ' http address' <( tail -f $tmp_registry_log )
11593
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 "
11897
119- cd packages/react-error-overlay/
120- npm run build:prod
121- cd ../..
98+ # Login so we can publish packages
99+ npx npm-cli-login@0.0.10 -u user -p password -e user@example.com -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
122104
123105# ******************************************************************************
124- # First, pack and install create-react-app.
106+ # Test --scripts-version with a version number
125107# ******************************************************************************
126108
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
130112
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
134117
135118# ******************************************************************************
136- # Test --scripts-version with a version number
119+ # Test --use-npm flag
137120# ******************************************************************************
138121
139122cd " $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
142125
143126# Check corresponding scripts version is installed.
144127exists 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
146130checkDependencies
147131
148132# ******************************************************************************
149133# Test --scripts-version with a tarball url
150134# ******************************************************************************
151135
152136cd " $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
154138cd test-app-tarball-url
155139
156140# Check corresponding scripts version is installed.
157141exists 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
159143checkDependencies
160144
161145# ******************************************************************************
162146# Test --scripts-version with a custom fork of react-scripts
163147# ******************************************************************************
164148
165149cd " $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
167151cd test-app-fork
168152
169153# Check corresponding scripts version is installed.
@@ -175,7 +159,7 @@ exists node_modules/react-scripts-fork
175159
176160cd " $temp_app_path "
177161# 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
179163# confirm that the project folder was deleted
180164test ! -d test-app-should-not-exist
181165
@@ -187,7 +171,7 @@ cd "$temp_app_path"
187171mkdir test-app-should-remain
188172echo ' ## Hello' > ./test-app-should-remain/README.md
189173# 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
191175# confirm the file exist
192176test -e test-app-should-remain/README.md
193177# confirm only README.md is the only file in the directory
201185
202186cd $temp_app_path
203187curl " 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
205189cd test-app-scoped-fork-tgz
206190
207191# Check corresponding scripts version is installed.
@@ -216,22 +200,22 @@ cd "$temp_app_path"
216200mkdir test-app-nested-paths-t1
217201cd test-app-nested-paths-t1
218202mkdir -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
220204cd test-app-nested-paths-t1/aa/bb/cc/dd
221- npm start -- --smoke-test
205+ yarn start --smoke-test
222206
223207# Testing a path that does not exist
224208cd " $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
226210cd test-app-nested-paths-t2/aa/bb/cc/dd
227- npm start -- --smoke-test
211+ yarn start --smoke-test
228212
229213# Testing a path that is half exists
230214cd " $temp_app_path "
231215mkdir -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
233217cd test-app-nested-paths-t3/aa/bb/cc/dd
234- npm start -- --smoke-test
218+ yarn start --smoke-test
235219
236220# Cleanup
237- cleanup
221+ cleanup
0 commit comments