2012-05-08 32 views
7

Tôi hoàn toàn bối rối về cách sử dụng mô-đun npm trong mã máy khách Meteor.Làm thế nào để sử dụng mô-đun npm trong ứng dụng Meteor?

Tôi hiểu mô-đun như fs sẽ chỉ làm việc server-side, nhưng trong trường hợp này, tôi muốn sử dụng một mô-đun văn bản đơn giản như thế này để hiển thị ngày khá:

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

Tôi đã thử cài đặt các module dưới/public/node_modules, và nó hoạt động tốt trên các server-side theo các hướng dẫn từ 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 nó không hoạt động trong mã phía máy khách:

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" 

Phía máy chủ là loại vô ích đối với tôi trong trường hợp này, vì tôi đang cố gắng hiển thị văn bản trên máy khách.

+0

Phương thức trong http://stackoverflow.com/q/17068813/586086 có hiệu quả đối với tôi. –

Trả lời

6

Tôi không tin bạn cần sử dụng phiên bản phía máy chủ. Chỉ sử dụng công cụ npm cho phía máy chủ và btw, đặt nó vào/công khai/của bạn. Ai biết được bạn có thể gọi nó khi nó ở trong/public/của bạn, hãy thử nó. Hoặc thử cái này.

Sử dụng một cái gì đó giống như jquery timeago.js

Đặt nó trong/khách hàng/hoặc một cái gì đó giống như/khách hàng/js

Tạo một /client/helpers.js hoặc một số ví dụ.

Sử dụng trình trợ giúp tay lái.

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

Ví dụ về chức năng trợ giúp tay lái 'ngày' xử lý từ mẫu.

{{ date created }} 

Trường hợp ngày là handebars trợ giúp và tạo ra là ngày sắp ra khỏi bộ sưu tập sao băng/mongo.

Xem dự án Gittub Britto. Đó là nơi tôi có đoạn mã này và sử dụng nó trong một ứng dụng phòng chat tôi đã viết. Hoạt động tốt.

Có một vài người khác đang nổi ở đó. Truy cập madewith.meteor.com và tìm hiểu nguồn gốc của một số dự án.

+0

Cảm ơn bạn đời! Tóm tắt vấn đề là: * mô-đun npm không tối ưu cho phía máy khách * Người trợ giúp thanh điều khiển là bạn của bạn * Plugin jQuery có thể được sử dụng và tham chiếu tự động nếu chúng nằm trong thư mục ứng dụng – 7zark7

+0

Chỉnh sửa "app/client dir" - như bạn sẽ thấy "ReferenceError: jQuery không được định nghĩa" nếu không. – 7zark7

+0

vâng, nó đang làm việc cho tôi, tôi đã sử dụng ví dụ Britto từ mã của JonathanKingston ... có một dự án khác có ngày tốt cho người đọc được ... tìm kiếm thông qua các dự án maddewith.meteor.com –

Các vấn đề liên quan