{
  "name": "react-cool-starter",
  "version": "2.4.0",
  "description": "A starter boilerplate for an universal web application with the best development experience and best practices.",
  "main": "index.js",
  "engines": {
    "node": ">=5.0",
    "npm": ">=3.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/wellyshen/react-cool-starter"
  },
  "keywords": [
    "starter",
    "boilerpate",
    "universal",
    "react",
    "redux",
    "react router",
    "express",
    "webpack 3",
    "es6",
    "flow",
    "hot reloading",
    "babel",
    "postcss",
    "jest",
    "unit testing",
    "performance optimizing"
  ],
  "author": "WellyShen <hivoid19@gmail.com> (https://github.com/wellyshen)",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/wellyshen/react-cool-starter/issues"
  },
  "homepage": "https://github.com/wellyshen/react-cool-starter",
  "scripts": {
    "start": "better-npm-run start",
    "start:production": "yarn build && yarn start:prod",
    "start:prod": "better-npm-run start:prod",
    "build": "yarn build:client && yarn build:server",
    "build:client": "yarn clean:client && better-npm-run build:client",
    "build:server": "yarn clean:server && better-npm-run build:server",
    "lint": "yarn lint:js && yarn lint:style",
    "lint:js": "better-npm-run lint:js",
    "lint:style": "better-npm-run lint:style",
    "flow": "better-npm-run flow",
    "test": "better-npm-run test",
    "test:watch": "yarn test --watch",
    "clean:all": "yarn clean:client && yarn clean:server && yarn clean:test",
    "clean:client": "better-npm-run clean:client",
    "clean:server": "better-npm-run clean:server",
    "clean:test": "better-npm-run clean:test",
    "coveralls": "better-npm-run coveralls && yarn clean:test"
  },
  "betterScripts": {
    "start": {
      "command": "nodemon ./index.js --exec babel-node",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "development"
      }
    },
    "start:prod": {
      "command": "node ./index.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "production"
      }
    },
    "build:client": {
      "command": "webpack --progress --hide-modules --config ./tools/webpack/webpack.client.babel.js",
      "env": {
        "NODE_ENV": "production"
      }
    },
    "build:server": {
      "command": "webpack --progress --hide-modules --config ./tools/webpack/webpack.server.babel.js"
    },
    "lint:js": {
      "command": "eslint ./src ./tools ./index.js"
    },
    "lint:style": {
      "command": "stylelint \"./src/**/*.scss\" --syntax scss"
    },
    "flow": {
      "command": "flow; test $? -eq 0 -o $? -eq 2"
    },
    "test": {
      "command": "jest --coverage",
      "env": {
        "NODE_ENV": "test"
      }
    },
    "clean:client": {
      "command": "rimraf ./build/public/assets"
    },
    "clean:server": {
      "command": "rimraf ./build/server.js ./build/server.js.map"
    },
    "clean:test": {
      "command": "rimraf ./coverage"
    },
    "coveralls": {
      "command": "cat ./coverage/lcov.info | coveralls"
    }
  },
  "babel": {
    "presets": [
      "es2015",
      "react",
      "stage-0"
    ]
  },
  "eslintConfig": {
    "parser": "babel-eslint",
    "extends": "airbnb",
    "plugins": [
      "react",
      "jsx-a11y",
      "import"
    ],
    "env": {
      "browser": true,
      "node": true,
      "jest": true,
      "es6": true
    },
    "rules": {
      "max-len": 0,
      "arrow-body-style": 0,
      "react/jsx-quotes": 0,
      "react/wrap-multilines": 0,
      "global-require": 0,
      "no-underscore-dangle": 0,
      "no-console": 0,
      "react/jsx-filename-extension": [
        1,
        {
          "extensions": [
            ".js",
            ".jsx"
          ]
        }
      ],
      "import/no-extraneous-dependencies": [
        "off",
        {
          "devDependencies": true
        }
      ]
    },
    "globals": {
      "__CLIENT__": true,
      "__SERVER__": true,
      "__DISABLE_SSR__": true,
      "__DEV__": true,
      "webpackIsomorphicTools": true
    }
  },
  "stylelint": {
    "extends": "stylelint-config-standard",
    "rules": {
      "string-quotes": "single",
      "selector-pseudo-class-no-unknown": [
        true,
        {
          "ignorePseudoClasses": [
            "global",
            "local"
          ]
        }
      ]
    }
  },
  "browserslist": [
    "last 2 versions",
    "not ie <= 8"
  ],
  "jest": {
    "collectCoverageFrom": [
      "src/containers/**/*.js",
      "src/components/**/*.js",
      "!src/**/__tests__"
    ],
    "moduleNameMapper": {
      ".*\\.(css|scss|sass)$": "<rootDir>/tools/jest/styleMock.js",
      ".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/tools/jest/assetMock.js"
    }
  },
  "dependencies": {
    "awry-utilities": "^1.0.61",
    "axios": "^0.16.2",
    "babel-polyfill": "^6.23.0",
    "chalk": "^2.1.0",
    "compression": "^1.7.0",
    "dotenv": "^4.0.0",
    "express": "^4.15.4",
    "helmet": "^3.8.1",
    "history": "^4.6.3",
    "hpp": "^0.2.2",
    "lodash": "^4.17.4",
    "morgan": "^1.8.2",
    "opn": "^5.1.0",
    "possum-ui-commerce": "git+ssh://git@bitbucket.org:hickory_lab/possum-ui-commerce.git#1.0.17",
    "prop-types": "^15.5.10",
    "react": "16.0.0-rc.3",
    "react-dom": "16.0.0-rc.3",
    "react-helmet": "^5.1.3",
    "react-hot-loader": "^3.0.0-beta.6",
    "react-redux": "^5.0.6",
    "react-redux-loading-bar": "^2.9.2",
    "react-router-dom": "^4.1.2",
    "react-router-redux": "5.0.0-alpha.6",
    "redbox-react": "^1.5.0",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0",
    "serialize-javascript": "^1.4.0",
    "serve-favicon": "^2.4.3",
    "webpack-isomorphic-tools": "^3.0.3"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-cli": "^6.24.1",
    "babel-core": "^6.25.0",
    "babel-eslint": "^7.2.3",
    "babel-jest": "^20.0.3",
    "babel-loader": "^7.1.1",
    "babel-plugin-istanbul": "^4.1.4",
    "babel-preset-latest": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babili-webpack-plugin": "^0.1.2",
    "better-npm-run": "^0.1.0",
    "coveralls": "^2.13.1",
    "cross-spawn": "^5.1.0",
    "css-loader": "^0.28.4",
    "enzyme": "^2.9.1",
    "eslint": "^4.4.1",
    "eslint-config-airbnb": "^15.1.0",
    "eslint-loader": "^1.9.0",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "5.1.1",
    "eslint-plugin-react": "^7.2.1",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^0.11.2",
    "flow-bin": "0.52.0",
    "image-webpack-loader": "^3.3.1",
    "imports-loader": "^0.7.1",
    "jest": "^20.0.4",
    "nock": "^9.0.14",
    "node-sass": "^4.5.3",
    "nodemon": "^1.11.0",
    "postcss": "^6.0.9",
    "postcss-loader": "^2.0.6",
    "react-addons-test-utils": "^15.6.0",
    "react-test-renderer": "^15.6.1",
    "redux-mock-store": "^1.2.3",
    "rimraf": "^2.6.1",
    "sass-loader": "^6.0.6",
    "style-loader": "^0.18.2",
    "stylelint": "^8.0.0",
    "stylelint-config-standard": "^17.0.0",
    "stylelint-webpack-plugin": "^0.9.0",
    "url-loader": "^0.5.9",
    "webpack": "^3.5.4",
    "webpack-dev-middleware": "^1.12.0",
    "webpack-hot-middleware": "^2.18.2",
    "webpack-node-externals": "^1.6.0"
  }
}
