All Projects → scriptype → Makefile For The Front End

scriptype / Makefile For The Front End

A decent Makefile for fast prototyping and a good development experience.

Labels

Projects that are alternatives of or similar to Makefile For The Front End

Udict
A command line urban dictionary.
Stars: ✭ 99 (-5.71%)
Mutual labels:  makefile
Layout Instability
A proposal for a Layout Instability specification
Stars: ✭ 103 (-1.9%)
Mutual labels:  makefile
Operating System
🔰 Home Assistant Operating System
Stars: ✭ 1,920 (+1728.57%)
Mutual labels:  makefile
License List Xml
This is the repository for the master files that comprise the SPDX License List
Stars: ✭ 101 (-3.81%)
Mutual labels:  makefile
Mesos Compose
Mesos cluster in one command
Stars: ✭ 102 (-2.86%)
Mutual labels:  makefile
Android build
Stars: ✭ 101 (-3.81%)
Mutual labels:  makefile
Openwrt V2ray
V2Ray for OpenWrt
Stars: ✭ 1,358 (+1193.33%)
Mutual labels:  makefile
Docker Composer
🙆 Docker container to install and run Composer.
Stars: ✭ 104 (-0.95%)
Mutual labels:  makefile
Pyzh
📚 一起写Python文章,一起看Python文章 - 利用readthedocs的Python技术文章的收集和翻译。
Stars: ✭ 1,387 (+1220.95%)
Mutual labels:  makefile
Devopicons
Heavily-optimised version of the Devicons icon-font.
Stars: ✭ 104 (-0.95%)
Mutual labels:  makefile
Activiti Cloud Examples
Activiti Cloud Examples using Docker Images from: https://hub.docker.com/u/activiti/dashboard/
Stars: ✭ 102 (-2.86%)
Mutual labels:  makefile
Bsdiff and patch
just demo;
Stars: ✭ 102 (-2.86%)
Mutual labels:  makefile
Bsdowl
A highly portable build system targeting modern UNIX systems. Supports C, OCaml, TeX, METAPOST, NOWEB, M4, and more. Based on BSD Make.
Stars: ✭ 103 (-1.9%)
Mutual labels:  makefile
Sklearn tutorial
Tutorial for astronomy data processing with scikit-learn
Stars: ✭ 100 (-4.76%)
Mutual labels:  makefile
Ecs Refarch Cloudformation
A reference architecture for deploying containerized microservices with Amazon ECS and AWS CloudFormation (YAML)
Stars: ✭ 1,497 (+1325.71%)
Mutual labels:  makefile
Kernel Tools
🐧 Kernels on Scaleway
Stars: ✭ 99 (-5.71%)
Mutual labels:  makefile
Microservice Canvas
Examples of the microservice canvas
Stars: ✭ 103 (-1.9%)
Mutual labels:  makefile
Make.go
A Go script that could replace your Makefile.
Stars: ✭ 105 (+0%)
Mutual labels:  makefile
Yii2 Cookbook
Yii 2.0 Community Cookbook
Stars: ✭ 1,397 (+1230.48%)
Mutual labels:  makefile
Gdm3setup
An interface to configure GDM3, autologin options and change Shell theme
Stars: ✭ 103 (-1.9%)
Mutual labels:  makefile

Screenshot of Makefile

Makefile for the Front End

I've used this Makefile for a fast development environment for a side-project that I no longer continue.

You can clone this repository to kickstart a frontend project. Required folder structure is set up for Makefile to work.

TL;DR

Why Make?

I'm using Make to manage ops-side of my front-end projects because it's simple. In Gulp, Grunt or Webpack or any other tool, you have to comprehend the complexity of programmatic usage and learn how some 3rd party abstractions work.

When, instead, Make is used for the same tasks, it's much easier for anyone to contribute, fix or make any kind of change on the build script (at least for me). It's not asynchronous, it doesn't give you abstractions to "make your job easier". It's flat. You read a Makefile in sequential order, with no indirection.

Setup

You need Node and npm installed on your machine which is capable of running Makefiles (i.e: not Windows as far as I know).

# Clone the repository
git clone [email protected]:scriptype/Makefile-for-the-Front-End.git

# Go to project directory
cd Makefile-for-the-Front-End

# Install dependencies
npm i

Besides modules used in Makefile, react and react-dom for JS and express for dev-server will also be installed. They are not mandatory.

Run

Development

make

When finished, head over to localhost:8080

Production

make release

When finished, head over to localhost:8080

Notes

  • It's far from being perfect (and it's not intended to be).

  • Express dependency is for server.js. You can remove it and handle dev-server however you like.

  • Handlebars is used in index.html to dynamically manipulate the path of JS and CSS files according to environment. It also calls livereload script in dev mode.

  • No CSS pre-processor was used. CSS files are completely static and source files are directly used in dev mode. You get an experience similar to prototyping in browser thanks to livereload.

  • When releasing the project:

    • CSS will be autoprefixed and @imports will be concatenated into a single file.

    • JS modules will be babelified with react and es2015 presets.

    • HTML, JS and CSS outputs will be minified.

Contribution

Please don't hesitate to open issues and making pull requests. When doing that, consider that this boilerplate is aimed to have minimum complexity. e.g: Implementing redux is out of scope in this project.

Licence

MIT License

Copyright (c) 2016 Mustafa Enes Ertarhanacı

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].