Name Last Update
app Loading commit data...
assets Loading commit data...
config Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.nvmrc Loading commit data...
README.md Loading commit data...
app.js Loading commit data...
gulpfile.js Loading commit data...
package.json Loading commit data...

README.md

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.