mirror of
https://github.com/zhigang1992/create-react-app.git
synced 2026-01-12 22:46:30 +08:00
Fix the E2E script (#3888)
* Fix the E2E script * Delete .git if committing failed
This commit is contained in:
28
packages/react-scripts/scripts/init.js
vendored
28
packages/react-scripts/scripts/init.js
vendored
@@ -22,7 +22,7 @@ const spawn = require('react-dev-utils/crossSpawn');
|
||||
const { defaultBrowsers } = require('react-dev-utils/browsersHelper');
|
||||
const os = require('os');
|
||||
|
||||
function insideGitRepository() {
|
||||
function isInGitRepository() {
|
||||
try {
|
||||
execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
|
||||
return true;
|
||||
@@ -31,7 +31,7 @@ function insideGitRepository() {
|
||||
}
|
||||
}
|
||||
|
||||
function insideMercurialRepository() {
|
||||
function isInMercurialRepository() {
|
||||
try {
|
||||
execSync('hg --cwd . root', { stdio: 'ignore' });
|
||||
return true;
|
||||
@@ -40,22 +40,36 @@ function insideMercurialRepository() {
|
||||
}
|
||||
}
|
||||
|
||||
function tryGitInit() {
|
||||
function tryGitInit(appPath) {
|
||||
let didInit = false;
|
||||
try {
|
||||
execSync('git --version', { stdio: 'ignore' });
|
||||
|
||||
if (insideGitRepository() || insideMercurialRepository()) {
|
||||
if (isInGitRepository() || isInMercurialRepository()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
execSync('git init', { stdio: 'ignore' });
|
||||
didInit = true;
|
||||
|
||||
execSync('git add -A', { stdio: 'ignore' });
|
||||
execSync('git commit -m "Initial commit from Create React App"', {
|
||||
stdio: 'ignore',
|
||||
});
|
||||
|
||||
return true;
|
||||
} catch (e) {
|
||||
if (didInit) {
|
||||
// If we successfully initialized but couldn't commit,
|
||||
// maybe the commit author config is not set.
|
||||
// In the future, we might supply our own committer
|
||||
// like Ember CLI does, but for now, let's just
|
||||
// remove the Git files to avoid a half-done state.
|
||||
try {
|
||||
// unlinkSync() doesn't work on directories.
|
||||
fs.removeSync(path.join(appPath, '.git'));
|
||||
} catch (removeErr) {
|
||||
// Ignore.
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -172,7 +186,7 @@ module.exports = function(
|
||||
}
|
||||
}
|
||||
|
||||
if (tryGitInit()) {
|
||||
if (tryGitInit(appPath)) {
|
||||
console.log();
|
||||
console.log('Initialized a git repository.');
|
||||
}
|
||||
|
||||
@@ -174,12 +174,6 @@ rm .babelrc
|
||||
# Finally, let's check that everything still works after ejecting.
|
||||
# ******************************************************************************
|
||||
|
||||
# Commiting changes
|
||||
git config user.email "you@example.com"
|
||||
git config user.name "Your Name"
|
||||
git add .
|
||||
git commit -m "Before npm run eject"
|
||||
|
||||
# Eject...
|
||||
echo yes | npm run eject
|
||||
|
||||
|
||||
Reference in New Issue
Block a user