Coder Social home page Coder Social logo

badk0met / boilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iinku/front-end-boilerplate

0.0 1.0 0.0 566 KB

Un peu de code pour commencer rapidement mes projets

Makefile 8.02% Dockerfile 8.41% HTML 8.07% PHP 11.65% Ruby 6.13% JavaScript 21.52% CSS 36.19%

boilerplate's Introduction

📦 Ma Configuration

travis badge

Chaque fois que l'on commence un projet on est obligé de configurer les outils avant de pouvoir commencer et à chaque fois rien ne marche comme attendu.

Pour éviter ça, ce dépôt contient ma configuration fonctionnelle pour la compilation d'assets JS / CSS / img, la création du serveur de développement et le déploiement ansible. Le but du dépôt n'est pas d'avoir une config bullet proof capable de gérer tous les cas mais juste de répondre à mes besoins pour démarrer plus rapidement.

📐 Comment ça marche ?

On sait jamais si je perds la mémoire un jour...

make dev # lance le serveur de dev
make build # construit le projet 
make clean # Nettoie le projet
make test # Lance les tests unitaires
make deploy # Déploie le projet

💻 Integration de Webpack

Wordpress

// Dans le fichier functions.php
if ($_SERVER['SERVER_PORT'] === '8080') { // On peut remplacer cette condition ici
    wp_enqueue_script('montheme-js', 'http://localhost:8080/main.js', [], '1.0', true);
} else {
    wp_enqueue_style('montheme-style', get_template_directory_uri() . '/assets/app.css');
    wp_enqueue_script('montheme-js', get_template_directory_uri() . '/assets/main.js', [], '1.0', true);
}

Ruby on Rails

Pour remplacer le gestionnaire d'asset de rails qui est lent as fuck. On crée un initializer qui lie le json qui liste les assets :

# On charge les noms de fichier de webpack
IMAGE_ASSETS = lambda do |logical_path, filename|
  filename.start_with?(::Rails.root.join("app/assets/images").to_s) && !['.js', '.css', ''].include?(File.extname(logical_path))
end
Rails.application.config.assets.precompile = ['rails.js', IMAGE_ASSETS]

if Rails.env == 'production'
  path = Rails.root.join('public', 'assets', 'assets.json')
  if File.exist?(path)
    file = File.read(path)
    json = JSON.parse(file)
    Rails.application.config.assets.json = json
  else
    Rails.application.config.assets.json = {}
  end
end

On remplace le helper asset_path

module AssetHelper

  def asset_path(url)
    if url == 'rails.js'
      return super
    end
    if Rails.env == 'production'
      splits = url.split('.')
      json = Rails.application.config.assets.json
      throw splits[0] if json[splits[0]] === nil
      json[splits[0]][splits[1]]
    else
      if url.split('.').last === 'css'
        return ''
      else
        return '//localhost:8080/' + url
      end
    end
  end

end

🕒 A faire

  • Rendre le makefile dynamique (détecter le framework et adapter les commandes en fonction)
  • Mieux organiser les variables ansible
  • Finaliser les recettes de déploiement ansible (symfony, laravel, wordpress et rails)
  • Trouver la grande question sur la vie, l'univers et le reste

boilerplate's People

Contributors

grafikart avatar kareylo avatar alex-d avatar antleblanc avatar oipnet avatar julienitard avatar akiletour avatar

Watchers

Benjamin Pinel 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.