Book Image

Isomorphic JavaScript Web Development

By : Tomas Alabes, Konstantin Tarkus
Book Image

Isomorphic JavaScript Web Development

By: Tomas Alabes, Konstantin Tarkus

Overview of this book

<p>The latest trend in web development, Isomorphic JavaScript, allows developers to overcome some of the shortcomings of single-page applications by running the same code on the server as well as on the client. Leading this trend is React, which, when coupled with Node, allows developers to build JavaScript apps that are much faster and more SEO-friendly than single-page applications.</p> <p>This book begins by showing you how to develop frontend components in React. It will then show you how to bind these components to back-end web services that leverage the power of Node. You'll see how web services can be used with React code to offload and maintain the application logic. By the end of this book, you will be able to save a significant amount of development time by learning to combine React and Node to code fast, scalable apps in pure JavaScript.</p>
Table of Contents (16 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

The basic project structure


Now, let's create the initial folder structure for our project, which will look like this:

.
├── /build/             # Folder for compiled output 
├── /components/        # React components 
├── /core/              # Core application code 
├── /data/              # GraphQL data types 
├── /node_modules/      # 3rd-party libraries and utilities 
├── /public/            # Static files 
├── /routes/            # Isomorphic application routes 
├── /test/              # Unit and integration tests 
├── /tools/             # Build automation scripts and utilities 
├── .babelrc            # Babel configuration 
├── .editorconfig       # Text editor configuration 
├── .eslintrc           # ESLint configuration 
├── .gitignore          # Files to exclude from SCM 
├── client.js           # Client-side startup script 
├── package.json        # Holds various project's metadata 
└── server.js           # Server-side startup script 

It is important to organize your source files in a way so that it will be easier for you to access them and reference one from one another. Avoid deeply nested folder structures. Group your files by purpose rather than by file types.

Sometimes, developers split the application's source code into client and server folders. With isomorphic apps that might be unnecessary because many of the components are shared between client-side and server-side code.

You can copy the dot files (.babelrc, .editorconfig, .eslintrc, and .gitignore) from the example source code accompanying this book into your project.