Sono stato al passo con il moderno ecosistema JS lato client e ho letto su CommonJS e AMD (inclusi gli strumenti associati: browserify, requestjs, onejs, jam, dozzine di altri). Se sto scrivendo una libreria Javascript, come posso modulare / impacchettarla in modo tale che possa essere ampiamente accessibile (idealmente dagli utenti che giurano su CommonJS, AMD e soprattutto nessuno dei due)?
Le librerie popolari come jQuery sembrano usare solo la concatenazione di file della vecchia scuola per costruirsi e rilevare dinamicamente se dovrebbe scrivere in un exports
contesto globale. Attualmente sto facendo la stessa cosa, ma il principale svantaggio è che se (a differenza di jQuery) dipendo da alcune librerie, è bello non dover chiedere agli utenti di pre-includere manualmente il set transitivo. (Anche se al momento ho solo due dipendenze.) E ovviamente l'inquinamento dello spazio dei nomi globale.
O forse è più pulito generare più versioni della mia libreria, per ogni contesto?
Mi sto anche chiedendo del packaging e dell'editoria. Esistono diversi sistemi, ma credo che quello principale sia il bower, che è facile da gestire poiché tutto ciò che fa è recuperare. Tuttavia, mi chiedo se dovrei anche scegliere come target altri sistemi di pacchetti come componente (che richiede CommonJS).
Ci sono altri aspetti rilevanti di cui dovrei essere a conoscenza? Ci sono dei buoni progetti da seguire per tutto questo?