diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 745632e5..00000000 --- a/.babelrc +++ /dev/null @@ -1,10 +0,0 @@ -// NOTE: These options are overriden by the babel-loader configuration -// for webpack, which can be found in ~/build/webpack.config. -// -// Why? The react-transform-hmr plugin depends on HMR (and throws if -// module.hot is disabled), so keeping it and related plugins contained -// within webpack helps prevent unexpected errors. -{ - "presets": ["es2015", "react", "stage-0"], - "plugins": ["transform-runtime"] -} diff --git a/.eslintignore b/.eslintignore index 2b6c6a1f..378eac25 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1 @@ -blueprints/**/files/** -coverage/** -node_modules/** -dist/** -src/index.html +build diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 35879b55..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": [ - "hapi", - "standard-react" - ], - "plugins": [ - "babel" - ], - "env": { - "browser": true - }, - "globals": { - "__DEV__": false, - "__PROD__": false, - "__DEBUG__": false, - "__COVERAGE__": false, - "__BASENAME__": false - }, - "parserOptions": { - "sourceType": "script", - "ecmaFeatures": { - "impliedStrict": true - } - }, - "rules": { - "indent": [2, 4, { "MemberExpression": 0, "SwitchCase": 1 }], - "react/jsx-indent": [2, 4], - "react/jsx-indent-props": [2, 4] - } -} diff --git a/.gitignore b/.gitignore index b8a6cd42..2bf52ffe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ .DS_STORE *.log - node_modules - -dist +build coverage +config/.env diff --git a/.reduxrc b/.reduxrc deleted file mode 100644 index ef884368..00000000 --- a/.reduxrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "sourceBase":"src", - "testBase":"tests", - "smartPath":"containers", - "dumbPath":"components", - "fileCasing":"pascal" -} diff --git a/.travis.yml b/.travis.yml index 7398b7bb..ba8ceec3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,12 @@ language: node_js node_js: - - "8" + - "10" -cache: - directories: - - node_modules - -install: - - npm install +cache: npm script: - npm run lint - npm run test - - NODE_ENV=dev npm run deploy - - NODE_ENV=production npm run deploy + - npm run build + - npm run build:dev diff --git a/LICENSE b/LICENSE index 19bb6d43..1d3b5b5c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016, Big Room Studios +Copyright (c) 2016-2019, Big Room Studios Copyright (c) 2015-2016, David Zukowski Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/README.md b/README.md index d4fa5ab2..6e0a3a8f 100644 --- a/README.md +++ b/README.md @@ -6,107 +6,63 @@ [![dependencies](https://david-dm.org/BigRoomStudios/strangeluv.svg)](https://david-dm.org/BigRoomStudios/strangeluv) [![devDependency Status](https://david-dm.org/BigRoomStudios/strangeluv/dev-status.svg)](https://david-dm.org/BigRoomStudios/strangeluv#info=devDependencies) -Here you find a fork of [this](https://github.com/davezuko/react-redux-starter-kit) React/Redux starter kit. We've made it our own. You'll find React, Redux, and a dope Webpack build system that's already setup to provide hot reloading, CSS modules with Sass support, unit testing, code coverage reports, bundle splitting, etc. Ships with a hapi server and plugin for arbitrarily siiick deployments. We'll tell you where to put files and make things easy whenever possible. - -## Table of Contents -1. [Toolset](#toolset) -1. [Requirements](#requirements) -1. [Getting Started](#getting-started) -1. [Application Structure](#application-structure) -1. [Development](#development) -1. [Testing](#testing) -1. [Deployment](#deployment) -1. [Build System](#build-system) -1. [Thank You](#thank-you) - -## Toolset -* [strangeluv-core](https://github.com/BigRoomStudios/strangeluv-core) -* [react](https://github.com/facebook/react) -* [redux](https://github.com/rackt/redux) -* [react-router](https://github.com/rackt/react-router) -* [react-router-redux](https://github.com/rackt/react-router-redux) -* [webpack](https://github.com/webpack/webpack) -* [babel](https://github.com/babel/babel) -* [hapi](https://github.com/hapijs/hapi) -* [karma](https://github.com/karma-runner/karma) -* [eslint](http://eslint.org) +Strangeluv is an opinionated, curated set of tools for building React applications. + + - *UI* - `react` `react-dom` `prop-types` + - *Styles* - `styled-components` `polished` + - *State* - `redux` `react-redux` `redux-thunk` `strange-middle-end` `normalizr` `immer` + - *Routing* - `react-router` `react-router-dom` `connected-react-router` `strange-router` `history` + - *Errors* - `react-error-boundary` `error-overlay-webpack-plugin` + - *Builds* - `webpack` `html-webpack-plugin` `copy-webpack-plugin` `file-loader` `@babel/core` `babel-preset-react-app` + - *Production server* - `@hapi/hapi` `@hapi/inert` + - *Development server* - `webpack-dev-server` + - *HMR* - `react-hot-loader` `@hot-loader/react-dom` + - *Tests* - `jest` `@testing-library/react` + - *Lint* - `eslint` `@hapi/eslint-config-hapi` `eslint-config-standard-react` ## Requirements -* node `6.x.x` -* npm `3.x.x` +* node `10.x.x` ## Getting Started ```bash -$ git clone https://github.com/BigRoomStudios/strangeluv -$ mv strangeluv my-project -$ cd my-project # Then adjust package.json and readme as necessary -$ npm install # Install project dependencies -$ npm start # Compile and launch -``` - -If all goes well you should see something like this, -``` -| app:config Creating default configuration. +0ms -| app:config Looking for environment overrides for NODE_ENV "dev". +2ms -| app:config Found overrides, applying to default configuration. +1ms -| app:webpack:config Create configuration. +0ms -| app:webpack:config Enable plugins for live development (HMR, NoErrors). +1ms -| app:bin:server Server is now running at http://0.0.0.0:3000. +125ms +$ git clone --depth=1 --origin=strangeluv --branch=strangeluv git@github.com:bigroomstudios/strangeluv.git my-project +$ cd my-project +$ git checkout --orphan master # New branch without history +$ npm install # Install all dependencies +$ npm start # Start development server ``` |`npm run