Ember-cli fallisce su --environment= Produzione (errore non rilevato: impossibile trovare il modulo)
-
21-12-2019 - |
Domanda
Sto usando Ember-CLI e ho un problema con la selezione dell'ambiente di produzione.Nello specifico, tutto funziona quando eseguo ember serve --environment=development
e ottengo una pagina vuota quando eseguo ember serve --environment=production
.Nella console, vedo:
- .
- Uncaught TypeError: indefinito non è una funzione
- Errore non rilevato: Impossibile trovare il modulo Simple-Auth / Authenticators / Base
Tutte le altre cose sono uguali e tutte le dipendenze sono aggiornate.Sono un noob totale quindi non so nemmeno da dove cominciare su come eseguire il debug: è ember?Ember-cli?broccoli?Qualsiasi aiuto sarebbe apprezzato.
Soluzione
Soluzione è menzionato sul sito web di Ember CLI :
.Questo è alquanto non standard e scoraggiato, ma supponiamo che a causa di un requisito nella tua applicazione che è necessario utilizzare la versione completa dei manubri anche nell'ambiente di produzione.
Fondamentalmente, è possibile passare l'opzione vendorFiles
all'istanza EmberApp
che costringerà la CLI di includere la versione completa del manubrio.
Esempio di richiedere esplicitamente handlebars.js
, in Brocfile.js
:
var app = new EmberApp({
vendorFiles: {
'handlebars.js': {
production: 'bower_components/handlebars/handlebars.js'
}
}
});
.
Questo è il modo consigliato per risolvere questo problema ( discussione su github).
Altri suggerimenti
Ho avuto esattamente lo stesso problema, e James_1x0 è corretto, è un problema dei broccoli. Dopo il debug si verifica, che l'errore "indefinito" scende su "ember.handlebars.compile" che conduce ad altre ricerche. Sembra, che nel clinico di produzione "manubri.js" è sostituito da "manubri.runtime.js" nel processo di costruzione di Ember-cli, che sembra essere un problema per i broccoli in questo momento.
Altri devs hanno avuto lo stesso problema ma anche con altre biblioteche: https://github.com/stefanpenner/eberd-cli/pull/675# Issuecomment-47431195
Qui la soluzione era da aggiungere:
var index = app.legacyFilesToAppend.indexOf('bower_components/handlebars/handlebars.runtime.js');
if(index) {
app.legacyFilesToAppend[index] = 'bower_components/handlebars/handlebars.js';
}
.
nel tuo brocfile.js per sostituire il "manubrio.runtime.js" con il "manubrio.js". Questo ha anche risolto il problema per me. Sicuramente ha lo svantaggio che l'intero file dei manubri è implementato ma è un workerarround per ora, fino a quando il problema è fissato.