Ottimizza/build moduli in directory parallele utilizzando lo stesso file di configurazione in Requisitijs

StackOverflow https://stackoverflow.com/questions/8982133

  •  12-11-2019
  •  | 
  •  

Domanda

Ho la sensazione che il titolo potrebbe non essere esplicativo :)

Impostare

Supponiamo di avere la seguente struttura:

enter image description here

dove app.js I file sono principali moduli di bootstrap/voce per le applicazioni che sembrano questo:

app01

require.config({});

require([
    'app/component1.js'
], 
function(component){
    // do something with component1
});

app02

require.config({});

require([
    'app/component2.js'
], 
function(component){
    // do something with component2
});

che lavorano entrambi con appropriato index.html File.

Ho un file di configurazione di build requisitejs (assumere un corretto posizionamento relativo ai percorsi) per app01:

({
    appDir: 'apps/app01',
    baseUrl: '.',
    dir: 'built_apps/app01',
    optimize: 'closure',
    paths: {
    },

    modules: [
        {
            name: 'app'
        }
    ]
})

Il che funziona bene. File simile (sostituzione app01 insieme a app02) funziona bene per app02.

Problema/target

Ora voglio essere in grado di eseguire lo strumento Build Recoids (usando la chiusura di Google con Rhino sotto ANT, non che in questo caso è davvero importante) per entrambi) app01 e app02 applicazioni utilizzando lo stesso Build File di configurazione e, preferibilmente, senza effettivamente elencare tutte le app per nome (poiché il numero e i nomi possono variare nel tempo).

Fondamentalmente mi aspetto (o piuttosto spero) che abbia qualcosa del genere:

({
    appDir: 'apps',
    baseUrl: '.',
    dir: 'built_apps',
    optimize: 'closure',
    paths: {

    },

    modules: [
        {
            name: 'app*/app' // notice the wildcard
        }
    ]
})

che si sarebbe investito built_apps Directory, trova tutte le app in app*/app e ottimizzarne ognuna di esse.

So di poter usare ANT per creare tale file di configurazione di build al volo per app, eseguire build contro di essa e quindi ripulire, ma preferirei avere una soluzione richiedente.

C'è un modo per fare qualcosa del genere con i requisiti?

È stato utile?

Soluzione

Non esiste una configurazione di cardioni incorporati per requisiti. In un modo o nell'altro, avrai bisogno di codice per farlo. Osserverò che ciò che stai chiedendo qui equivale a tradurre un jolly in una sorta di iterazione implicita sugli oggetti del modulo, simile a ciò Mustache.js Fornisce i suoi modelli. IMO, questo è un approccio abbastanza fragile e limitato in questo contesto.

Invece, ti consiglio di generare il tuo modules Array programmaticamente in JavaScript proprio nella configurazione build. Ricordiamo, la configurazione build è JavaScript non solo una struttura di dati JSON. Questo ti dà sofisticate capacità di scripting lì.

Ho fatto questo tipo di scripting nella configurazione build per il GEM di Requisito-Rails. Ecco un Esempio Gist Questo mostra cosa r.js vedrebbe al momento della costruzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top