From a3f327ac07f15245b142f7522c16b0576e6e9d25 Mon Sep 17 00:00:00 2001
From: Dennis Ushakov <dennis.ushakov@gmail.com>
Date: Wed, 31 Aug 2016 17:21:57 +0400
Subject: [PATCH] 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
---
 global-cli/index.js | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/global-cli/index.js b/global-cli/index.js
index 9a298b83a..dc6262b71 100644
--- a/global-cli/index.js
+++ b/global-cli/index.js
@@ -71,7 +71,7 @@ function createApp(name, verbose, version) {
   var root = path.resolve(name);
   if (!pathExists.sync(name)) {
     fs.mkdirSync(root);
-  } else if (!isGitHubBoilerplate(root)) {
+  } else if (!isSafeToCreateProjectIn(root)) {
     console.log('The directory `' + name + '` contains file(s) that could conflict. Aborting.');
     process.exit(1);
   }
@@ -167,11 +167,12 @@ function checkNodeVersion() {
   }
 }
 
-// Check if GitHub boilerplate compatible
-// https://github.com/facebookincubator/create-react-app/pull/368#issuecomment-237875655
-function isGitHubBoilerplate(root) {
+// If project only contains files generated by GH, it’s safe.
+// We also special case IJ-based products .idea because it integrates with CRA:
+// https://github.com/facebookincubator/create-react-app/pull/368#issuecomment-243446094
+function isSafeToCreateProjectIn(root) {
   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)
     .every(function(file) {
-- 
GitLab