Using NPM package on Meteor's Template

Using NPM package on Meteor's Template

本文关键字:Template Meteor NPM package on Using      更新时间:2023-09-26

我添加了moment包,使用mrt add moment在Meteor的模板中格式化客户端的日期/时间。然而,我似乎可以在服务器端使用它,但不能在模板助手中使用。

如何在模板助手中使用momentjs

server/main.js(有效!)

var moment = Meteor.require('moment');
var t = moment( '2013-11-24 16:18:06' ).format('HH:mm:ss');
console.log(t);

client/main.js(不工作)

Template.fruits.myTime = function() {
    var moment = Meteor.require('moment');
    var t = moment( '2013-11-24 16:18:06' ).format('HH:mm:ss');
    return t;
}

错误:

Uncaught ReferenceError: require is not defined 

我尝试使用Npm.require('moment'),但出现错误:Uncaught ReferenceError: Npm is not defined

CCD_ 6给出一个错误:CCD_

如果使用添加力矩

mrt add moment

那么它可以直接作为函数使用:

moment()

您总是可以通过查看特定软件包的package.js文件来了解如何使用该软件包。看看moment package:中的package.js

...
if(api.export) {
  api.export('moment');
}
...

我注意到通过注册全局车把助手来使用moment非常方便

Handlebars.registerHelper('nice-date', function(date){
    return moment(date).fromNow();
});

并直接在模板中使用:

<template name="test">
  {{nice-date createdAt}}  // 5 seconds ago
</template>

如果添加Meteor包,则永远不需要使用require()。你是如何添加Moment的?通过Atmosphere上的包装(https://atmosphere.meteor.com/package/moment)使用命令mrt add moment

根据该页面,一旦添加了包,您应该会看到一个moment全局变量,您可以简单地调用它:

var oneMonentPlease = moment();

您不需要将任何require语句放在任何位置。上面这行应该行得通。

由于Moment是一个客户端库,您不一定需要将其添加为Meteor包或Npm模块。你可以下载http://momentjs.com/downloads/moment.min.js并将其保存在/lib文件夹中。这样做,它将自动对客户端和服务器都可用,并且上面的代码行将起作用。