Supponiamo che io abbia un progetto scritto in JS tramite framework come Node.js e Express . Utilizza inoltre Mocha come framework di test e Gulp come sistema di compilazione.
Mi chiedo quale sia il modo migliore per esporre installazione, test e distribuzione agli utenti.
Voglio dire, gli utenti di solito devono fare le seguenti cose:
- Installa Node.js e npm
- Installa le dipendenze (npm, bower ecc.)
- Preelaborare CSS / JS (ad esempio Sass, Meno ecc.), ridimensionare le immagini ecc.
- Esegui test
- Esegui l'applicazione
Quale di queste attività dovrebbe essere gestita tramite il sistema di build (in questo caso Gulp) e quale da npm?
Suppongo che ci siano due modi:
- Fai tutto con Gulp.
gulp install
installerà tutte le dipendenze npm e bower,gulp preprocess
preelaborerà CSS / JS / immagini,gulp test
eseguiràMocha
ecc. Comunque,npm start
dovrebbe essere gestito separatamente perché l'esecuzione di un server web non è un tipico compito del sistema di build. - Forza l'utente a eseguire tutte le operazioni tramite i comandi npm in questo modo:
package.json
"scripts": {
"ins": "npm install && bower install && gulp preprocess",
"test": "gulp test",
"start": "node --harmony server.js",
"deploy": "npm run ins && gulp --harmony"
}
Sì, usa comunque il gulp sotto il cappuccio ma è nascosto all'utente, quindi sembra che usi solo npm. Penso che sia bello limitare l'utente a npm, quindi non devono sapere nulla sullo strumento aggiuntivo, e possiamo passare a un altro sistema di generazione in qualsiasi momento successivo senza riscrivere il manuale del processo di distribuzione.
Che ne pensi? Esistono buone pratiche relative a questo problema?