2012-05-08 13 views
7

Estoy completamente confundido sobre cómo usar un módulo npm en el código del cliente Meteor.¿Cómo usar el módulo npm en el cliente Meteor?

entiendo módulos como fs sólo funcionaría del lado del servidor, pero en este caso me gustaría utilizar un módulo de texto simple como esto para mostrar fechas bonitas:

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

que he probado instalación del módulo en/pública/node_modules, y funciona muy bien en el lado del servidor siguiendo estas instrucciones de 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())) 
    ... 

Howev er que no funciona en el código del lado del cliente:

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" 

del lado del servidor es una especie de inútil para mí en este caso, como estoy tratando de representar el texto en el cliente.

+0

El método en http://stackoverflow.com/q/17068813/586086 funciona para mí. –

Respuesta

6

No creo que necesite usar la versión del lado del servidor. Usa las cosas de npm solo para el lado del servidor y por cierto, ponlo en tu/public/también. Quién sabe, quizás puedas llamarlo una vez que esté en tu/public /, pruébalo. O prueba esto

usar algo como el jQuery timeago.js

colocarlo en/cliente/o algo así/cliente/js

Crear un /client/helpers.js o algo así.

Utilice un ayudante de manillar.

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'; 
}); 

Ejemplo de llamada 'date' handlebars helper function from template.

{{ date created }} 

Cuando la fecha es el ayudante handebars y creó es la fecha en que sale de la colección de meteoritos/mongo.

Vea el proyecto Britto de github. Ahí es donde obtuve este fragmento de código y lo usé en una aplicación de sala de chat que escribí. Funciona bien.

Hay un par de otros flotando por ahí. Vaya a madewith.meteor.com y examine el origen de algunos de los proyectos.

+0

¡Gracias amigo! Así, un resumen de edición es: * módulos NGP no son óptimas para el lado del cliente * ayudantes del manillar son de su amigo * plugins jQuery se pueden utilizar y se hace referencia de forma automática si se encuentran en la aplicación dir – 7zark7

+0

corrección "dir aplicación/cliente" - como verá "ReferenceError: jQuery no está definido" en caso contrario. – 7zark7

+0

Sí, me funciona, utilicé el ejemplo de Britto del código de JonathanKingston ... hay otro proyecto que también tiene una buena fecha de lectura humana ... busque en los proyectos de maddewith.meteor.com –

Cuestiones relacionadas