Ho scoperto di recente Meteor e sto lottando con l'utilizzo delle classi ES6 e le importazioni in un nuovo progetto Meteor. Quello che voglio fare è avere una struttura complessa di classi, i quali metodi vengono chiamati dagli eventi/metodi/helper di Meteor. Ho aggiunto Babel.js al progetto scrivendo un comando $ meteor add grigio:babel
e funziona correttamente.Come utilizzare correttamente le classi es6 in file diversi importandoli in Meteor?
esempio di quello che sto cercando di realizzare:
nel server/modelli/article.js:
class Article {
static all() {
//returns all articles from db
}
}
nel server/metodi/articles.js:
Meteor.methods({
allArticles: {
Article.all();
}
})
Having ciò solleva ReferenceError: Article is not defined
in un file di metodi, che è adeguato. Quindi ho tre opzioni: scrivere tutte le classi in un file, aggiungere tutte le classi a un oggetto globale o utilizzare un buon sistema di moduli come Browserify. Ovviamente, la terza opzione è migliore.
Ma come si usa? Babel converte export
, import
in Browserify per impostazione predefinita e Meteor solleva un errore require is not defined
all'aggiornamento della pagina. Dopo aver cercato su Google il problema, non ho trovato una soluzione chiara su come aggiungere Browserify a Meteor. Dovrei aggiungere un pacchetto npm per il supporto a Meteor, aggiungere un pacchetto npm di browserify e aggiungerlo manualmente a Meteor in ogni pagina in cui importare/esportare qualcosa? O dovrei usare un approccio completamente diverso? Come viene generalmente gestita questa attività in Meteor? Grazie!
utilizzare l'estensione .es6 invece di .js di qualsiasi file che contengono il codice ECMAScript ES6 2015. Questo ha corretto un ReferenceError simile per me. Se funziona per te, aggiungerò questo commento come risposta. –