Mi sono ritrovato con il moderno ecosistema JS lato client e ho letto su CommonJS e AMD (inclusi strumenti associati: browserify, requirejs, onejs, jam, dozzine di altri). Se sto scrivendo una libreria Javascript, come faccio a modularizzarlo / impacchettarlo in modo tale che possa essere più accessibile (idealmente dagli utenti che giurano su CommonJS, AMD e soprattutto nessuno dei due)?
Le librerie popolari come jQuery sembrano utilizzare solo la concatenazione di file vecchia scuola per costruirsi e rilevare dinamicamente se scrivere in exports
o nel contesto globale. Al momento sto facendo la stessa cosa, ma lo svantaggio principale è che se io (a differenza di jQuery) dipende 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 naturalmente l'inquinamento dello spazio dei nomi globale.
O forse è più pulito generare più versioni della mia libreria, per ogni contesto?
Mi sto anche interrogando sul packaging e la pubblicazione. Esistono diversi sistemi, ma credo che il principale sia il bower, che è facile da gestire poiché tutto ciò che fa è recuperare. Tuttavia, mi chiedo se dovrei prendere di mira anche altri sistemi di pacchetti come il componente (che richiede CommonJS).
Ci sono altri aspetti rilevanti di cui dovrei essere a conoscenza? Ci sono dei buoni esempi di progetti da seguire per tutto questo?