README.md 1.93 KB

Scaffolder NodeJS, Express, Sequelize (rimpiazzabile con un ORM NoSQL in pochi minuti), MySQL, basato sul generatore "express" (https://github.com/petecoop/generator-express). Se si usa nvm, nel repo c'è il file nascosto ".nvmrc" che attiva la corretta versione di NodeJS (se installata). Allo stato attuale la versione è la 6.2.2, quindi si suggerisce di utilizzare sintassi ES2015/ES6. Il codice è strutturato in MVC, all'interno della cartella app. Le rotte sono in una cartella routes in app. Eventuali file di frontend vanno messi in assets. Installa tutte le dipendenze con npm e modifica il gulpfile a piacimento. Uno scheletro è già incluso. Il task "scripts" è il più delicato. Serve a comporre i js frontend con le loro dipendenze. Browserify si aspetta tutte le dipendenze come moduli. Anche se molte dipendenze sono moduli, vedi jQuery, e possono essere importati con:

import jQuery from 'jquery';

altre dipendenze, vedi Bootstrap, non espongono moduli. In quel caso le alternative sono:

  • togliere browserify dal gulpfile
  • workaround

Il workaround per includere bootstrap (ed è identico per ogni altro non modulo) in un file js frontend dove serve è:

window.$ = window.jQuery = jQuery;
var Bootstrap = require('bootstrap-sass');
Bootstrap.$ = window.$;
require('bootstrap-sass/assets/javascripts/bootstrap');

Questo perché bootstrap dipende da jQuery, ma non essendo un modulo browserify non riesce a mostrare a bootstrap che jQuery è correttamente incluso e bootstrap segnala la mancanza di jQuery.

Si suggerisci di utilizzare pm2 per controllare i processi sui server in fase di deploy. Nel package.json ci sono anche i task per il deploy. E' sufficiente installare pm2 sul server (npm install -g pm2). Nei task "start*" viene incluso il supporto alle migrazioni sequelize (http://docs.sequelizejs.com/en/latest/docs/migrations/)

Non viene incluso nessun framework frontend, che può tuttavia essere incluso a piacimento.