Tirando fuori i miei capelli cercando una semplice soluzione per condividere codice, richiesta tramite NPM, su più bundle di Browserify o Webpack. Pensando, esiste una cosa come un "ponte" di file?Soluzione semplice per condividere i moduli caricati tramite NPM su più bundle Browserify o Webpack
Questo non è dovuto a tempo di compilazione (Sono consapevole di watchify), ma piuttosto il desiderio di estrarre fuori tutte le mie librerie specifiche del fornitore in vendor.js
in modo di mantenere la mia app.js
dimensione del file verso il basso e di non mandare in crash il browser con massiccia sourcemaps. Inoltre, trovo il modo più pulito se dovesse emergere la necessità di visualizzare i js compilati. E così:
// vendor.js
require('react');
require('lodash');
require('other-npm-module');
require('another-npm-module');
E 'molto importante che il codice venga caricato dal NPM al contrario di Bower, o salvati in una directory 'vendor' per poter essere importati attraverso un percorso relativo e identificato tramite uno spessore. Mi piacerebbe mantenere ogni riferimento di libreria tirato via NPM tranne che per la mia vera fonte di applicazione.
In app.js
io continuo tutto il mio codice sorgente, e tramite l'array externals
, esclude librerie dei venditori sopra elencati dalla compilazione:
// app.js
var React = require('react');
var _ = require('lodash');
var Component = React.createClass()
// ...
E poi nel index.html
, ho bisogno di entrambi i file
// index.html
<script src='vendor.js'></script>
<script src='app.js'></script>
Usando Browserify o Webpack, come posso fare in modo che app.js
possa "vedere" in quei moduli caricati via npm? Sono a conoscenza della creazione di un pacchetto con esterni e quindi di referenziare il file diretto (ad esempio, node_modules
) tramite un alias, ma spero di trovare una soluzione più automatica e meno "Require.js".
Fondamentalmente, mi chiedo se sia possibile collegare i due in modo che app.js
possa guardare all'interno di vendor.js
per risolvere le dipendenze. Sembra un'operazione semplice e diretta, ma non riesco a trovare una risposta da nessuna parte su questa rete ampia e ampia.
Grazie!
presumo reagisco va nella matrice vendor troppo? – Leahcim
stai solo includendo il nome del file del fornitore in quell'array, o dovrebbe essere un percorso? – Leahcim
Non voglio creare un bundle o un chunk separato per la mia libreria separata di componenti che sto condividendo tra progetti, voglio solo richiedere direttamente i file sorgente. Conosci un modo per farlo? (domanda completa: http://stackoverflow.com/questions/31820641/how-to-set-up-a-private-shared-library-of-react-components-with-webpack) – Andy