git clone https://github.com/React-Boilerplates/Universal-Express-Apollo.git
npm install
npm start
npm run build
npm run start:prod
I was trying to use other cli/generators and was coming up against some blockers... many of them try to extract away too much. Next.js makes it hard to create an initializer so that they have a better page building experience. As a result things like redux
are VERY hacky to implement by using wrappers. Things like create-react-app
are not SSR by default. Also getting styling implemented in these are a serious pain in the tuckus. I wanted to build an app that allows for production quality build with modern standards like graphql
by default.
- Server
- Express
- Apollo-Server
- Apollo-Upload-Server
- Sequelize
- Session-Storage
- DataLoader
- Client
- JWT
- ServiceWorker
- React
- React-hot-loader
- React-Helmet
- React-Router
- Redux
- Redux-Form
- Apollo-Client
- Styled-Components
- Testing
- Casual
- Jest
- Enzyme
- Pre-processors
- Webpack
- Babel
- Styling
- Linting
- ESLint
- StyleLint
- Prettier
- PostCSS
- PreCSS
- CSSNano
- CSS-Next
- Code-Splitting
- Loadable-Components
- Server-Side-Render
- Production-Ready
If you are running into something like the following
C:\projects\universal-express-apollo\node_modules\readdirp\readdirp.js:55
var api = require('./stream-api')();
TypeError: require(...) is not a function
at readdir (C:\projects\universal-express-apollo\node_modules\readdirp\readdirp.js:55:48)
This is because Chokidar does not seem to work well with Windows Machines. Possible Solutions when reading this GitHub issue Chokidar #312
- Watch specific files instead of directories (I am not going to do this as I do not have a windows machine and testing this using Appveyor is taking ages)
- Take this the Chokidar part of the code and trash it
Take a look and contribute if you would like. The goal of this is to use modern standards.