mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-04-28 09:25:42 +08:00
Misc fixes for Windows (#60)
This commit is contained in:
72
tasks/e2e.sh
Executable file
72
tasks/e2e.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
# Copyright (c) 2015-present, Facebook, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree. An additional grant
|
||||
# of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
# Start in tests/ even if run from root directory
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Exit the script on any command with non 0 return code
|
||||
# We assume that all the commands in the pipeline set their return code
|
||||
# properly and that we do not need to validate that the output is correct
|
||||
set -e
|
||||
|
||||
# Echo every command being executed
|
||||
set -x
|
||||
|
||||
# npm pack the two directories to make sure they are valid npm modules
|
||||
initial_path=$PWD
|
||||
cd ..
|
||||
|
||||
# A hacky way to avoid bundling dependencies.
|
||||
# Packing with them enabled takes too much memory, and Travis crashes.
|
||||
# End to end script is meant to run on Travis so it's not a big deal.
|
||||
# If you run it locally, you'll need to `git checkout -- package.json`.
|
||||
perl -i -p0e 's/bundledDependencies.*?]/bundledDependencies": []/s' package.json
|
||||
|
||||
# Pack react-scripts
|
||||
npm install
|
||||
scripts_path=$PWD/`npm pack`
|
||||
|
||||
# Pack CLI
|
||||
cd global-cli
|
||||
npm install
|
||||
cli_path=$PWD/`npm pack`
|
||||
|
||||
# Install the cli in a temporary location ( http://unix.stackexchange.com/a/84980 )
|
||||
temp_cli_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_cli_path'`
|
||||
cd $temp_cli_path
|
||||
npm install $cli_path
|
||||
|
||||
# Install the app in a temporary location
|
||||
temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'`
|
||||
cd $temp_app_path
|
||||
node "$temp_cli_path"/node_modules/create-react-app/index.js --scripts-version=$scripts_path test-app
|
||||
cd test-app
|
||||
|
||||
# Test the build
|
||||
npm run build
|
||||
|
||||
# Check for expected output
|
||||
test -e build/*.html || exit 1
|
||||
test -e build/*.js || exit 1
|
||||
|
||||
# Test the server
|
||||
npm start -- --smoke-test
|
||||
|
||||
# Eject and test the build
|
||||
echo yes | npm run eject
|
||||
npm run build
|
||||
|
||||
# Check for expected output
|
||||
test -e build/*.html || exit 1
|
||||
test -e build/*.js || exit 1
|
||||
|
||||
# Test the server
|
||||
npm start -- --smoke-test
|
||||
|
||||
# Cleanup
|
||||
cd $initial_path
|
||||
rm -rf $temp_cli_path $temp_app_path
|
||||
48
tasks/release.sh
Normal file
48
tasks/release.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
# Copyright (c) 2015-present, Facebook, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree. An additional grant
|
||||
# of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
# Start in tests/ even if run from root directory
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Exit the script on any command with non 0 return code
|
||||
# We assume that all the commands in the pipeline set their return code
|
||||
# properly and that we do not need to validate that the output is correct
|
||||
set -e
|
||||
|
||||
# Echo every command being executed
|
||||
set -x
|
||||
|
||||
# Go to root
|
||||
cd ..
|
||||
|
||||
# You can only release with npm >= 3
|
||||
if [ $(npm -v | head -c 1) -lt 3 ]; then
|
||||
echo "Releasing requires npm >= 3. Aborting.";
|
||||
exit 1;
|
||||
fi;
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "Your git status is not clean. Aborting.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Force dedupe
|
||||
npm dedupe
|
||||
|
||||
# Don't bundle fsevents because it is optional and OS X-only
|
||||
# Since it's in optionalDependencies, it will attempt install outside bundle
|
||||
rm -rf node_modules/fsevents
|
||||
|
||||
# This modifies package.json to copy all dependencies to bundledDependencies
|
||||
# We will revert package.json back after release to avoid doing it every time
|
||||
node ./node_modules/.bin/bundle-deps
|
||||
|
||||
# Go!
|
||||
npm publish "$@"
|
||||
|
||||
# Discard changes to package.json
|
||||
git checkout -- .
|
||||
Reference in New Issue
Block a user