diff --git a/.babelrc b/.babelrc
index 86c445f..70ca99d 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,3 +1,28 @@
{
- "presets": ["es2015", "react"]
+ "presets": [
+ "react",
+ ["env", {
+ "targets": {
+ "browsers": "last 2 versions"
+ },
+ "loose": true,
+ "modules": false
+ }]
+ ],
+ "plugins": [
+ "react-hot-loader/babel",
+ "babel-plugin-transform-class-properties"
+ ],
+ "env": {
+ "test": {
+ "plugins": [
+ "babel-plugin-transform-es2015-modules-commonjs"
+ ]
+ },
+ "server": {
+ "plugins": [
+ "babel-plugin-transform-es2015-modules-commonjs"
+ ]
+ }
+ }
}
diff --git a/.editorconfig b/.editorconfig
index fe38df0..b5217a1 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -7,3 +7,4 @@ indent_size = 2
end_of_line = lf
charset = utf-8
insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..fa9c5eb
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,2 @@
+public/
+node_modules/
diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index ddb48e5..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "parser": "babel-eslint",
- "plugins": [
- "react"
- ],
- "env": {
- "browser": true,
- "node": true
- },
- "extends": "airbnb",
- "rules": {
- "no-cond-assign": [2, "except-parens"],
- "radix": 0,
- "space-infix-ops": 0,
- "no-unused-vars": [1, {"vars": "local", "args": "none"}],
- "default-case": 0,
- "no-else-return": 0,
- "no-param-reassign": 0,
- "no-console": 0,
- "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }],
- }
-}
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..5ca899f
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,38 @@
+
+{
+ "extends": [
+ // "plugin:flowtype/recommended",
+ "airbnb",
+ "prettier",
+ "prettier/react"
+ ],
+ "plugins": [
+ // "flowtype",
+ "prettier"
+ ],
+ "parser": "babel-eslint",
+ "parserOptions": {
+ "ecmaVersion": 2016,
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "jsx": true
+ }
+ },
+ "env": {
+ "es6": true,
+ "browser": true,
+ "node": true,
+ "jest": true
+ }
+ // "rules": {
+ // "no-cond-assign": [2, "except-parens"],
+ // "radix": 0,
+ // "space-infix-ops": 0,
+ // "no-unused-vars": [1, {"vars": "local", "args": "none"}],
+ // "default-case": 0,
+ // "no-else-return": 0,
+ // "no-param-reassign": 0,
+ // "no-console": 0,
+ // "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }],
+ // }
+}
diff --git a/.gitignore b/.gitignore
index d832d76..f5b9162 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,33 @@
-.DS_Store
-
+# dependencies
node_modules/
+
+# testing
+/coverage
+.nyc_output
+.eslintcache
+
+# production
+/build
+*.map
+*.bundle.js
+
public/bundle.js
+public/*bundle*
public/images/
+_site/
+.sass-cache/
+
+# misc
+.DS_Store
+.env
+*.iml
+.idea/
.config.js
-.eslintcache
-npm-debug.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+functions/firebase-debug.log
+
diff --git a/README.md b/README.md
index ad422cc..d92cfd8 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,16 @@
-# ReactJS Project Boilerplate
+# ReactJS Project Boilerplate v2
## Repo created to quickly setup my React projects.
+## Inspired by Complete Intro to React, v3
### Quick start a project with:
-* Webpack and webpack-dev-server
-* Babel 6
+* Prettier
* ESLint (extended with airbnb)
-* Jest
+* Webpack2 and webpack-dev-server
+* Babel 6
+* Jest/Enzyme
* SASS
* Express
* React-Router
-* Much more coming...
___
### Usage:
@@ -20,9 +21,10 @@ $ git clone --bare https://github.com/JohannBillar/reactjs-boilerplate.git .git
$ git config --bool core.bare false
$ git reset --hard
-$ npm install
-$ npm test
-$ npm start or $ NODE_ENV=production npm start
+$ yarn
+$ $ yarn start or $ NODE_ENV=production npm start
+$ yarn test
+
```
___
### TODO
diff --git a/app/index.js b/app/index.js
deleted file mode 100644
index bce14b6..0000000
--- a/app/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-import { render } from 'react-dom';
-import App from './components/App';
-
-require('./sass/main.scss');
-
-render(
-