2012-05-08 3 views
7

Я полностью смущен тем, как использовать модуль npm в коде клиента Meteor.Как использовать модуль npm в клиенте Meteor?

Я понимаю модули, как фс будет работать только на стороне сервера, но в данном случае я хотел бы использовать простой текстовый модуль, как это для отображения клевые даты:

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

Я пытался установка модуля в/Public/node_modules, и он прекрасно работает на стороне сервера, следуя этим инструкциям из 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 эр он не работает в стороне клиента код:

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" 

стороне сервера является своего рода бесполезно для меня в этом случае, как я пытаюсь сделать текст на клиенте.

+0

Метод в http://stackoverflow.com/q/17068813/586086 работает для меня. –

ответ

6

Я не верю, что вам нужно использовать версию на стороне сервера. Используйте материал npm только на стороне сервера и btw, поместите его в свой/public /. Кто знает, может быть, вы можете позвонить ему, когда он находится в вашем/общественном /, попробуйте. Или попробуйте это.

использовать что-то вроде JQuery timeago.js

Поместите его в/клиента/или что-то вроде/клиент/JS

Создать /client/helpers.js или некоторые такие.

Использовать помощник руля.

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

Пример вызова вспомогательной функции handle 'date' из шаблона.

{{ date created }} 

Где дата помощник handebars и создала дата выхода из коллекции метеора/Монго.

Просмотреть проект github Britto. Вот где я получил этот фрагмент кода и использовал его в приложении для чатов, которое я написал. Работает отлично.

Есть пара других плавающих там. Перейдите к madewith.meteor.com и изучите источник некоторых проектов.

+0

Спасибо, друг! Итак, резюме проблемы: * Модули npm не оптимальны для клиентской стороны * Помощники руля - ваш друг * Плагины jQuery можно использовать и ссылаться автоматически, если они находятся в каталоге приложения – 7zark7

+0

Исправление "app/client dir" - как вы увидите «ReferenceError: jQuery не определен» в противном случае. – 7zark7

+0

да, он работает для меня, я использовал пример Бритто из кода Джонатана Кингстона ... есть еще один проект, который тоже хорошо читается человеком ... поиск по проектам maddewith.meteor.com –

Смежные вопросы