mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-04-21 21:31:06 +08:00
This commit is contained in:
committed by
Dan Abramov
parent
ad57c457fa
commit
90ce8abfa6
29
packages/react-scripts/config/paths.js
vendored
29
packages/react-scripts/config/paths.js
vendored
@@ -70,17 +70,18 @@ module.exports = {
|
||||
};
|
||||
// @remove-on-eject-end
|
||||
|
||||
// @remove-on-publish-begin
|
||||
module.exports = {
|
||||
appBuild: resolveOwn('../../../build'),
|
||||
appPublic: resolveOwn('../template/public'),
|
||||
appHtml: resolveOwn('../template/public/index.html'),
|
||||
appIndexJs: resolveOwn('../template/src/index.js'),
|
||||
appPackageJson: resolveOwn('../package.json'),
|
||||
appSrc: resolveOwn('../template/src'),
|
||||
testsSetup: resolveOwn('../template/src/setupTests.js'),
|
||||
appNodeModules: resolveOwn('../node_modules'),
|
||||
ownNodeModules: resolveOwn('../node_modules'),
|
||||
nodePaths: nodePaths
|
||||
};
|
||||
// @remove-on-publish-end
|
||||
// config before publish: we're in ./packages/react-scripts/config/
|
||||
if (__dirname.indexOf(path.join('packages', 'react-scripts', 'config')) !== -1) {
|
||||
module.exports = {
|
||||
appBuild: resolveOwn('../../../build'),
|
||||
appPublic: resolveOwn('../template/public'),
|
||||
appHtml: resolveOwn('../template/public/index.html'),
|
||||
appIndexJs: resolveOwn('../template/src/index.js'),
|
||||
appPackageJson: resolveOwn('../package.json'),
|
||||
appSrc: resolveOwn('../template/src'),
|
||||
testsSetup: resolveOwn('../template/src/setupTests.js'),
|
||||
appNodeModules: resolveOwn('../node_modules'),
|
||||
ownNodeModules: resolveOwn('../node_modules'),
|
||||
nodePaths: nodePaths
|
||||
};
|
||||
}
|
||||
|
||||
32
tasks/cra.sh
32
tasks/cra.sh
@@ -16,10 +16,8 @@ cd "$(dirname "$0")"
|
||||
|
||||
function cleanup {
|
||||
echo 'Cleaning up.'
|
||||
cd $root_path
|
||||
# Uncomment when snapshot testing is enabled by default:
|
||||
# rm ./template/src/__snapshots__/App.test.js.snap
|
||||
rm -rf $clean_path
|
||||
}
|
||||
|
||||
# Error messages are redirected to stderr
|
||||
@@ -53,41 +51,17 @@ root_path=$PWD
|
||||
# Pack react-scripts so we can verify they work.
|
||||
# ******************************************************************************
|
||||
|
||||
# Packing react-scripts takes some work because we want to clean it up first.
|
||||
# Create a temporary clean folder that contains production only code.
|
||||
# Do not overwrite any files in the current folder.
|
||||
clean_path=`mktemp -d 2>/dev/null || mktemp -d -t 'clean_path'`
|
||||
|
||||
# Copy some of the react-scripts project files to the temporary folder.
|
||||
# Exclude folders that definitely won’t be part of the package from processing.
|
||||
# We will strip the dev-only code there, `npm pack`, and copy the package back.
|
||||
cd $root_path
|
||||
rsync -av --exclude='.git' --exclude=$clean_path\
|
||||
--exclude='node_modules' --exclude='build'\
|
||||
'./' $clean_path >/dev/null
|
||||
|
||||
# Open the clean folder
|
||||
cd $clean_path/packages/react-scripts
|
||||
|
||||
# Now remove all the code relevant to development of Create React App.
|
||||
files="$(find -L . -name "*.js" -type f)"
|
||||
for file in $files; do
|
||||
sed -i.bak '/\/\/ @remove-on-publish-begin/,/\/\/ @remove-on-publish-end/d' $file
|
||||
rm $file.bak
|
||||
done
|
||||
|
||||
# Install all our packages
|
||||
cd $clean_path
|
||||
$root_path/node_modules/.bin/lerna bootstrap
|
||||
|
||||
cd $clean_path/packages/react-scripts
|
||||
cd packages/react-scripts
|
||||
|
||||
# Like bundle-deps, this script modifies packages/react-scripts/package.json,
|
||||
# copying own dependencies (those in the `packages` dir) to bundledDependencies
|
||||
node $clean_path/tasks/bundle-own-deps.js
|
||||
node $root_path/tasks/bundle-own-deps.js
|
||||
|
||||
# Finally, pack react-scripts
|
||||
scripts_path=$clean_path/packages/react-scripts/`npm pack`
|
||||
scripts_path=$root_path/packages/react-scripts/`npm pack`
|
||||
|
||||
# ******************************************************************************
|
||||
# Now that we have packed them, call the global CLI.
|
||||
|
||||
@@ -39,25 +39,6 @@ if [ -n "$(git status --porcelain)" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Create a temporary clean folder that contains production only code.
|
||||
# Do not overwrite any files in the current folder.
|
||||
clean_path=`mktemp -d 2>/dev/null || mktemp -d -t 'clean_path'`
|
||||
|
||||
# Copy some of the project files to the temporary folder.
|
||||
# Exclude folders that definitely won’t be part of the package from processing.
|
||||
# We will strip the dev-only code there, and publish from it.
|
||||
rsync -av --exclude=$clean_path\
|
||||
--exclude='node_modules' --exclude='build'\
|
||||
'./' $clean_path >/dev/null
|
||||
cd $clean_path
|
||||
|
||||
# Now remove all the code relevant to development of Create React App.
|
||||
files="$(find -L . -name "*.js" -type f)"
|
||||
for file in $files; do
|
||||
sed -i.bak '/\/\/ @remove-on-publish-begin/,/\/\/ @remove-on-publish-end/d' $file
|
||||
rm $file.bak
|
||||
done
|
||||
|
||||
# Update deps
|
||||
rm -rf node_modules
|
||||
rm -rf ~/.npm
|
||||
@@ -72,14 +53,9 @@ npm dedupe
|
||||
# Since it's in optionalDependencies, it will attempt install outside bundle
|
||||
rm -rf node_modules/fsevents
|
||||
|
||||
# This modifies $clean_path/package.json to copy all dependencies to bundledDependencies
|
||||
# This modifies package.json to copy all dependencies to bundledDependencies
|
||||
node ./node_modules/.bin/bundle-deps
|
||||
|
||||
cd $clean_path
|
||||
|
||||
cd $root_path
|
||||
# Go!
|
||||
./node_modules/.bin/lerna publish --independent "$@"
|
||||
|
||||
# cleanup
|
||||
cd ..
|
||||
rm -rf $clean_path
|
||||
|
||||
Reference in New Issue
Block a user