2012-02-01 7 views
5

È possibile utilizzare la v1.6.1? A causa della configurazione Xdomain della distribuzione dojo del mio cliente, è necessario eseguire una nuova build ogni volta che il codice dev cambia. Come puoi immaginare, questo è un enorme perdita di tempo.DOJO build che non include DOJO base

Da tutto ciò che riesco a vedere non c'è modo di escludere il core dalla build giocando con le regole DOJOs. Quindi mi chiedo se c'è un modo per infrangere le regole (modificando le chiamate di Rhino?) Per arrivare dove devo essere.

risposta

2

Un paio di pensieri.

  1. È possibile evitare di costruire la maggior parte dei dojo (dijit, dojox) ma immagino già sanno che
  2. Questa restrizione si trovano ad affrontare sembra strano. Non c'è un modo in cui puoi semplicemente caricare i file JS specifici che stai modificando durante lo sviluppo?

Forse se fornisci maggiori dettagli sulla configurazione del client, posso aiutarti a trovare un modo per aggirare questo problema.

Aggiornamento Qui è quello che penso è necessario: Customize Dojo Base in Build. Ciò consente di specificare particolari bit della base del dojo da includere.

Questo funziona in pre-1.7, quindi si dovrebbe essere buono.

sembra essere esattamente quello che vuoi:

layers: [ 
    { 
     name: "dojo.js", 
     customBase: true, 
     dependencies: [ 
     ] 
    }, 

// ... remainder of profile 

] 

Questo vi darà il minimo assoluto di dojo (che ancora non c'è bisogno per lo scenario dev, ma che sarà drasticamente ridurre la quantità di file elaborati).

Per altri casi di utilizzo, è possibile utilizzare l'attributo dependencies per aggiungere altre cose dal core dojo.

Aggiornamento 2: Ecco un paio di build-time suggerimenti per l'ottimizzazione:

1) Do stringhe non internare, e non comprimere, quando in dev. Ci sono valori arg si può passare per evitare questi passaggi in termini di tempo (ad esempio è per costruire formica):

<arg value="internStrings=false"/> 
<arg value="layerOptimize=false"/> 

2) costruire ad un disco RAM per velocizzare la copia dei file

+0

Grazie per il feedback mtyson. Per spiegarlo meglio, questa applicazione è molto grande e ha almeno 15 squadre diverse di 4-10 persone che lavorano su di essa.Di conseguenza, il client ha scelto di separare il codice dojo su un server separato dal server di presentazione. Quindi, tutto nell'app è Xdomain. –

+0

Quindi, anche per dev, è necessario distribuire l'app stessa e la base di codici JS in domini diversi? E quello che ti serve è la capacità di consentire a un dev di costruire il più piccolo possibile (che include il bit su cui stanno lavorando), in modo che possano ottenere la versione xdomain e testarla .... pensando ... – mtyson

+0

Ok, aggiornato la risposta, penso di aver trovato qualcosa che funzionerà per te. – mtyson

1

Dojo supporta mix- and-match - così puoi usare xdomain e/o custom build per le cose che non cambiano - e usare regolarmente dojo.require per il JS/widget che sta cambiando spesso - e poi basta spingere quel JS per vedere la modifica senza nuovo xdomain/custom build/deployment

È possibile explore using local modules with xdomain build. Inoltre, Dojo consente l'utilizzo di più build personalizzate, quindi puoi creare una build personalizzata stabile per i widget che non cambiano così tanto e un'altra build più piccola per il codice che cambia frequentemente.

+0

Grazie Vijay. Quello che devo veramente fare è trovare un modo per creare una build che escluda completamente la base del dojo. So che questo non è il modo in cui funziona il processo di compilazione, quindi sto cercando un "work around" se ce n'è uno. –