Usiamo sia PHP e JavaScript, quindi abbiamo compositore e NPM.
Ciascuno dei progetti su cui lavoriamo ha diversi pacchetti sia per il runtime del pacchetto che per gli strumenti di build/dev.
Poiché ci sono vincoli di versione in ogni progetto, l'installazione della versione x di un pacchetto globalmente (che verrebbe eseguita dalla riga di comando), ci causerebbe problemi, installeremo tutti gli strumenti in ogni pacchetto. Molto più facile da definire nei file appropriati composer.json/package.json.
Ma eseguire gli strumenti CLI è un problema se è necessario aggiungere costantemente un ulteriore percorso al comando.
A tal fine, abbiamo raccomandare alla squadra che i seguenti percorsi vengono aggiunti al $PATH
nel .bashrc appropriata (o equivalente):
./vendor/bin:./node_modules/.bin
(EDIT: Per Windows, i percorsi sarebbe .\vendor\bin;.\node_modules\.bin;
)
Quindi, mentre nel progetto X, abbiamo accesso agli strumenti CLI per quel progetto. Passa al progetto Y e otteniamo gli strumenti per i progetti.
Certo, si ottengono duplicazioni, ma ogni progetto è gestito da team diversi (e alcune persone sono in più team), quindi ancora una volta, avere 1 versione nella configurazione globale è un problema lì.
fonte
2018-01-18 10:31:47
Quale sarebbe il punto nell'usare localmente Bower come var bower = require ('bower'); ? – Rigil
Bene, bower è un cattivo esempio poiché non penso che espongano un'api tramite javascript, ma '' 'express''' è qualcosa che ho usato in un progetto che ha un'interfaccia a linea di comando e una libreria si utilizza localmente nei file js. (Vedi la mia modifica per la documentazione utile) – Jimi
È anche utile perché i comandi nel blocco 'scripts' in' package.json' risolvono automaticamente i comandi locali. Ciò significa che potresti avere uno script che dipendeva da bower senza avere una dipendenza non documentata su Bower. – loganfsmyth