問題

Meteorクライアントコードでnpmモジュールを使用する方法について徹底的に混乱しています。

私はfsのようなモジュールはserver-sideだけを動作させることを理解していますが、この場合、かなりの日付を表示するためにこのような単純なテキストモジュールを使用したいと思います。

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

私は/ public/node_modulesの下にモジュールをインストールしようとしましたが、 そして、それはSOのこれらの指示に従ってサーバー側でうまく動作します:( Meteorでnpm経由でノードモジュールを使用するにはどうすればよいですか? )

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

ただし、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"
 

Server-sideは、クライアントにテキストをレンダリングしようとしているので、この場合、私にとっては役に立たないものです。

  ベストアンサー

私はあなたがサーバー側のバージョンを使用する必要はないと信じています。サーバー側でのみnpmのものを使用し、btwも/ public /に入れてください。あなたの/ public /に入ったら、それを呼び出すことができるかもしれないことを知っています。またはこれを試してください。

jquery timeago.jsのようなものを使用する

/ client /または/ client / 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';
});
 

テンプレートから 'date'ハンドルバーヘルパー関数を呼び出す例。

 {{ date created }}
 

dateはhandebarsヘルパーで作成され、meteor/mongoコレクションから出てくる日付です。

github Brittoプロジェクトを参照してください。そこで私はこのコードスニペットを手に入れ、私が書いたチャットルームアプリでそれを使用しました。うまく動作します。

他にもいくつか浮かんでいます。 madewith.meteor.com に行き、いくつかのプロジェクトのソースを読み込みます。

  同じタグがついた質問を見る

node.jsmeteor