Git Product home page Git Product logo

frontend-hangout's Introduction

Frontend Precommit Rules

Se trata de un conjunto de reglas que han de cumplirse antes de poder comitear nuestro código. Esta sesión está basada en las Frontend Pre-commit Rules de Schibsted Engineers.

Slides

Accede a las slides aquí.

Para que sirven:

  • Mejorar la calidad del código en un equipo
  • Normalizar el estilo y las buenas prácticas personales.

Cual elegir?

  • No existe una fórmula mágica
  • Consensuar reglas entre miembros del equipo.

Cómo funcionan?

  • Precommit Hook
  • Otros tipos: Pre-Push Hook

Cómo la añado a mi proyecto?

Instalación manual: Las FPCR están basadas en Eslint y Sass-lint (Ruby Gem)

  • Creamos un proyecto nuevo:
$ npm init
  • Inicializamos un repo Git:
$ git init
  • Creamos un archivo .gitignore
// https://www.gitignore.io/  => [node][osx]
$ touch .gitignore
  • Añadimos Git URL:
$ git remote ad origin ...
  • Añadimos Dependencia NPM de las Precommit Rules:
$ npm i @schibstedspain/frontend-pre-commit-rules --save-dev
  • Añadimos dependencias de linters:
$ npm i eslint eslint-plugin-react babel-eslint node-sass --save-dev

  • Comprobamos instalación de Sass (Ruby)

  • Añadimos pre-commit Hook al package.json:

  "pre-commit": [
    "lint"
  ]
  • Añadimos los Scripts de linting asociados dentro de "scripts"
"lint": "npm run lint:eslint && npm run lint:sass",
"lint:eslint": "eslint --ext=.js --ext=.jsx ./src/ ./test/ ./docs/",
"lint:sass": "scss-lint src/"
  • Añadimos resto de archivos del proyecto
  • Probamos comitear archivos.

Instalación con Yeoman Generator

  • Instalamos el Generador de forma Global:
npm install -g @schibstedspain/generator-sui-react
  • Lo ejecutamos para instalar entorno
yo @schibstedspain/sui-react

Sobre Eslint

Sobre SASS

Caso práctico

  • Crear un componente de React y ver funcionamiento del linter.
  • Ver errores linting.
  • Debuggar y solucionar errores/warnings.
  • Lintar sólo SASS o sólo JS.
  • Personalizar tus linting rules.

frontend-hangout's People

Contributors

davecarter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.