Commit a3f327ac authored by Dennis Ushakov's avatar Dennis Ushakov Committed by Dan Abramov
Browse files

ignore .idea folder (#522)

* ignore .idea folder
this change is requred for IntelliJ-based products because project information files are written before actual generator is invoked

* better method name and explanation
parent 4f26ebf2
Showing with 6 additions and 5 deletions
+6 -5
...@@ -71,7 +71,7 @@ function createApp(name, verbose, version) { ...@@ -71,7 +71,7 @@ function createApp(name, verbose, version) {
var root = path.resolve(name); var root = path.resolve(name);
if (!pathExists.sync(name)) { if (!pathExists.sync(name)) {
fs.mkdirSync(root); fs.mkdirSync(root);
} else if (!isGitHubBoilerplate(root)) { } else if (!isSafeToCreateProjectIn(root)) {
console.log('The directory `' + name + '` contains file(s) that could conflict. Aborting.'); console.log('The directory `' + name + '` contains file(s) that could conflict. Aborting.');
process.exit(1); process.exit(1);
} }
...@@ -167,11 +167,12 @@ function checkNodeVersion() { ...@@ -167,11 +167,12 @@ function checkNodeVersion() {
} }
} }
// Check if GitHub boilerplate compatible // If project only contains files generated by GH, it’s safe.
// https://github.com/facebookincubator/create-react-app/pull/368#issuecomment-237875655 // We also special case IJ-based products .idea because it integrates with CRA:
function isGitHubBoilerplate(root) { // https://github.com/facebookincubator/create-react-app/pull/368#issuecomment-243446094
function isSafeToCreateProjectIn(root) {
var validFiles = [ var validFiles = [
'.DS_Store', 'Thumbs.db', '.git', '.gitignore', 'README.md', 'LICENSE' '.DS_Store', 'Thumbs.db', '.git', '.gitignore', '.idea', 'README.md', 'LICENSE'
]; ];
return fs.readdirSync(root) return fs.readdirSync(root)
.every(function(file) { .every(function(file) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment