diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index 1d50c38b9f8da05f3329f4a10293cc72ddca99ab..1c154c361644aed6b5555786e08766d9be510d43 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -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 + }; +} diff --git a/tasks/cra.sh b/tasks/cra.sh index 9b25885457bce765035e1b0cdcad008ac4234390..c4d9e42bd039605d6c0bdf08cd053343f573ef8e 100755 --- a/tasks/cra.sh +++ b/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. diff --git a/tasks/release.sh b/tasks/release.sh index 8177688c4c028a61e962cf1f268e2c9cc3c61f8c..14b5cb77b1850f5b3232c25b13ac738cbbf5d2e7 100755 --- a/tasks/release.sh +++ b/tasks/release.sh @@ -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