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

Chapter 3. Working with CSS and Media Assets

As we discussed in the previous chapter, the ideal directory structure for your components is when each major UI element is located in its own folder, for example:

It might not be obvious how to concatenate all these files during build process making the app ready for deployment. However, thanks to module bundlers, such as Webpack and Browserify, this task is actually quite simple. You just need to learn how to configure these tools. There might be some caveats, but after completing this chapter, you should be more or less comfortable configuring bundling and optimization tools yourself.

Additionally, this project structure raises many concerns regarding modularization of CSS and media assets (images, icons, and fonts). For example, you may bump into this issue when it's not clear how to avoid conflicts between CSS selectors with the same names used across multiple components, or how to avoid problems with CSS inheritance.

Here is an example of conflicting...