2012-05-08 14 views
7

Sono completamente confuso su come utilizzare un modulo npm nel codice client di Meteor.Come utilizzare il modulo npm nel client Meteor?

Capisco moduli come fs avrebbe funzionato solo sul lato server, ma in questo caso mi piacerebbe utilizzare un semplice modulo di testo come questo per la visualizzazione delle belle date:

https://github.com/ecto/node-timeago

che ho provato installazione del modulo sotto/public/node_modules, e funziona benissimo sul lato server seguendo queste istruzioni da SO: ( How do we or can we use node modules via npm with Meteor?)

Meteor.startup(function() { 
    var require = __meteor_bootstrap__.require 
    var timeago = require('timeago') 
    console.log(timeago(new Date())) 
    ... 

Carn er non funziona nel codice client-side:

if (Meteor.is_client) { 
    var require = __meteor_bootstrap__.require 
    var timeago = require('timeago') 
    console.log(timeago(new Date())) 
    ... 

Uncaught ReferenceError: __meteor_bootstrap__ is not defined" 

lato server è una sorta di inutile per me in questo caso, come sto cercando di rendere il testo sul client.

+0

Il metodo in http://stackoverflow.com/q/17068813/586086 funziona per me. –

risposta

6

Non credo che sia necessario utilizzare la versione lato server. Usa il materiale npm solo per lato server e btw, mettilo nel tuo/public/pure. Chissà, forse puoi chiamarlo quando è nel tuo pubblico /, provalo. Oppure prova questo.

usare qualcosa come il jquery timeago.js

mettetelo in/client/o qualcosa di simile/client/js

Creare un /client/helpers.js o qualcosa del genere.

Utilizzare un assistente manubri.

Handlebars.registerHelper('date', function(date) { 
    if(date) { 
    dateObj = new Date(date); 
    return $.timeago(dateObj); 
    } 
    return 'a long long time ago in a galaxy far away'; 
}); 

Esempio di chiamata "data" funzione di supporto manubri dal modello.

{{ date created }} 

Dove data è l'aiutante handebars e ha creato è la data in uscita della collezione di meteoriti/mongo.

Vedere il progetto github Britto. È qui che ho ottenuto questo frammento di codice e l'ho usato in un'app di chat room che ho scritto. Funziona bene.

Ci sono un paio di altri fluttuanti là fuori. Vai su madewith.meteor.com e consulta la fonte di alcuni dei progetti.

+0

Grazie amico! Quindi una sintesi della questione è: * moduli NPM non sono ottimali per lato client * aiutanti manubrio sono tuo amico * plugin jQuery possono essere utilizzati e riferimento automaticamente se sono in app dir "app/cliente dir" – 7zark7

+0

Correzione - come vedrai "ReferenceError: jQuery non è definito" altrimenti. – 7zark7

+0

sì, sta funzionando per me, ho usato l'esempio di Britto dal codice di JonathanKingston ... c'è un altro progetto che ha anche una buona data leggibile ... cerca nei progetti maddewith.meteor.com –

Problemi correlati