Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitBook #76

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# Node rules:
## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

## Dependency directory
## Commenting this out is preferred by some people, see
## https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
node_modules
**/*/config.rb
.sass-cache
node_modules
dist
bower_components

# Book build output
_book

# eBook build output
*.epub
*.mobi
*.pdf
20 changes: 0 additions & 20 deletions .jshintrc

This file was deleted.

78 changes: 9 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,17 @@
# The Little Book Of Modern Front-end Tooling
# Book of Modern Front-end Tooling

A free open-source book introducing you to the world of tooling for modern web applications. Currently a WIP.
> This is a free, work-in-progress open-source book introducing you to the world of tooling for modern web applications.

## Chapters
Over the past few years, there has been a new wave of highly compelling and immersive web applications. Some of them replacing native applications as they are on par (if not better) in terms of usability and features. To build and maintain such complex applications in a collaborative environment, it is important to use the right tools. Unfortunately, there is no single place which documents available frontend tooling and provides an opinion for a developer.

* Introduction
* Why automate?
* Command-line
* Node and npm
* Build systems
* [Introduction](https://github.com/tooling/book-of-modern-frontend-tooling/issues/19)
* [Grunt](https://github.com/tooling/book-of-modern-frontend-tooling/issues/2)
* [Brunch](https://github.com/tooling/book-of-modern-frontend-tooling/issues/5)
* [Gulp](https://github.com/tooling/book-of-modern-frontend-tooling/issues/3)
* Automation with [npm run](https://github.com/tooling/book-of-modern-frontend-tooling/issues/22)
* Scaffolding
* [Yeoman](https://github.com/tooling/book-of-modern-frontend-tooling/issues/4)
* [Lineman](https://github.com/tooling/book-of-modern-frontend-tooling/issues/27)
* Loom
* Dependency Management
* [Bower](https://github.com/tooling/book-of-modern-frontend-tooling/issues/6)
* [npm + Browserify](https://github.com/tooling/book-of-modern-frontend-tooling/issues/7)
* [ComponentJS](https://github.com/tooling/book-of-modern-frontend-tooling/issues/11)
* [webpack](https://github.com/tooling/book-of-modern-frontend-tooling/issues/20)
The goal of this book is to walk developers through the application development lifecycle; help discover new concepts and introduce tooling that simplify building modern web applications.

## Status
For context, lets look at a modern web application's development lifecycle:

This book is currently in progress. The idea is to capture enough useful content on each topic that a beginner could get started with a specific tool in a short space of time.
![Image](assets/imgs/dev-workflow.svg)

We will aim to present all tools in a balanced light, providing the user with enough information to make up their minds on what makes sense for them to use.
**Scaffolding**: This involves creating an application structure and adding boiler-plate code to get started. Often, developers find this step painful as they are not aware of the best practices. Section two of this book introduces scaffolding tools that gives developers a simple way to generate scaffold code as per their application needs.

The book will be kept up to date by the authors and pull requests from the community will be happily accepted as with any OSS project.
**Dependency management**: Once the structure is in place, application dependencies (such as 3rd party libraries and frameworks) need to be added. Developers often have to source the dependency, download the right version and add it to the application manually. Sometimes, these libraries/frameworks themselves have other dependencies and the developer has to keep track of this. This process is quite painful if you work collaboratively on a large application that has a lot of dependencies. Section three of this book discusses tools that make it simple for developers to discover packages (from a repository) and manage dependencies.

## Getting involved

We are currently looking for:

* Authors interested in contributing new content on one of the topics above
* Authors who have previously written detailed posts about one of the suggested topics that could be refreshed and integrated
* Devs interested in helping us improve the current build setup

New issues will be created for each corresponding section so commenting on the appropriate thread would be the best way to let us know you're interested.

## Why a book vs. blog posts?

Blog posts are an excellent way to spread knowledge, but they are typically ephemeral. This is particularly challenging in the fast-paced world of tooling. By harnessing the collaborative power of the front-end community, we feel we can create a reliable, succinct resource that is kept up to date in the open. Anyone can get access to it. Anyone can improve it.

## Generating the book

### Depedencies

At the moment, the following dependencies are required to export the book to EPUB file format.

* [TeX Live](http://www.tug.org/texlive/acquire-netinstall.html). If you are using OSX, use [MacTex](http://tug.org/mactex/downloading.html).
* [Pandoc](http://johnmacfarlane.net/pandoc/)

## Developing the site template

The HTML site design exists in the `template` folder. We use `jade` for HTML and `SCSS` for CSS.

### Building

Make sure you are running Node > 0.10.0 and run `npm install` to install the development dependencies. This project uses GulpJS tasks to build the book from markdown files (as listed on the table of contents - `chapters/toc.md`) to various file formats.

* `gulp generate:pdf`: Generate a PDF version of the book.
* `gulp generate:site`: Generate a HTML version of the book.
* `gulp generate:epub`: Generate a EPUB version of the book.


### Output

The output from the build phase will be available in the `dist` folder.

## Licensing

<a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International License</a>.
**Build systems**: Build systems (or task runners) are used to automate pieces of the development workflow (refer red blocks in above figure). Remember, automation is key to developer productivity. Section four discusses various build systems that can be used to simplify your development workflow.
20 changes: 6 additions & 14 deletions chapters/toc.md → SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
* [Introduction](index.md)

* [Introduction](README.md)
* Scaffolding
* Yeoman
* Brunch
* Loom

* Dependency Management
* Bower
* [Introduction](dependency-management/bower/introduction.md)
* webpack
* [Introduction](dependency-management/webpack/introduction.md)
* [Bower](dependency-management/bower/introduction.md)
* [webpack](dependency-management/webpack/introduction.md)
* [Getting Started](dependency-management/webpack/getting-started.md)
* [Requiring Modules](dependency-management/webpack/1-requiring-modules.md)
* [Using Loaders](dependency-management/webpack/2-using-loaders.md)
Expand All @@ -22,25 +18,21 @@
* [Use With Build Tools](dependency-management/webpack/9-use-with-build-tools.md)
* [References](dependency-management/webpack/references.md)
* [Troubleshooting](dependency-management/webpack/troubleshooting.md)
* NPM browserify
* [Introduction](dependency-management/npm-browserify/introduction.md)
* [NPM browserify](dependency-management/npm-browserify/introduction.md)
* [Getting Started](dependency-management/npm-browserify/getting-started.md)
* [Modules](dependency-management/npm-browserify/modules.md)
* [Transforms](dependency-management/npm-browserify/transforms.md)
* [Development Workflow](dependency-management/npm-browserify/development-workflow.md)

* Build Systems
* Modern Tools vs Shell Scripts
* Grunt
* [Getting Started](build-systems/grunt/getting-started.md)
* [Linting Code](build-systems/grunt/linter.md)
* [Integrating a CSS preprocessor](build-systems/grunt/sass.md)
* Brunch
* [Introduction](build-systems/brunch/introduction.md)
* [Brunch](build-systems/brunch/introduction.md)
* [Getting Started](build-systems/brunch/getting-started.md)
* [Using Brunch](build-systems/brunch/using-brunch.md)
* Gulp
* [Introduction](build-systems/gulp/introduction.md)
* [Gulp](build-systems/gulp/introduction.md)
* [Getting Started](build-systems/gulp/getting-started.md)
* [Writing Tasks](build-systems/gulp/writing-tasks.md)
* [References](build-systems/gulp/references.md)
Expand Down
File renamed without changes.
File renamed without changes
8 changes: 8 additions & 0 deletions book.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"plugins": ["ga"],
"pluginsConfig": {
"ga": {
"token": "UA-XXXX-Y"
}
}
}
4 changes: 0 additions & 4 deletions build-assets/pdf.css

This file was deleted.

File renamed without changes.
File renamed without changes.
17 changes: 0 additions & 17 deletions chapters/index.md

This file was deleted.

85 changes: 0 additions & 85 deletions gulp-plugin/gulp-parse-toc.js

This file was deleted.

Loading