我正在尝试使用Meteor.require
从Meteor.js (版本0.6.6.3)中使用npm包。但是,它会抛出错误,指出require
未定义。为什么这样,我们如何解决它?
mrt add npm
npm install github
packages.json
{
"github": "0.1.8"
}
github.js
var GITHUB = Meteor.require('github');
错误
ReferenceError: require is not defined
npm包中包含
等行var https = require('https')
var url = require('url')
var crypto = require('crypto')
是否必须手动编辑包的代码才能使用Npm.require
?手动编辑它们可以消除错误。
然而有一条线:
module.exports = SOMETHING
我们应该如何在流星内呼叫module
?
答案 0 :(得分:10)
Meteor.require
是由meteor npm smart package添加的函数,除了包装一些异步回调之外,实际上除了使用npm之外没什么作用。它已经有几个月的历史了,所以你可能想尝试直接使用Meteor的Npm.require
,以防出现问题。
通过此程序包对Meteor
全局进行猴子修补是误导性的。
答案 1 :(得分:4)
将评论置于答案之上。
Meteor.require()是拼写错误吗?这就是你的代码中的内容,尽管你的问题文本引用了正确的Npm.require()。
我认为module.exports用于同一文件的非流星使用。用于导出的流星变量应
关于此的文档有点粗略,但请查看namespacing和writing packages。另外在github上查看各种meteor packages非常有用。
答案 2 :(得分:0)
确保您使用meteor-npm
包。
答案 3 :(得分:0)
在流星中使用Npm.require()。
像这样:
var fs = Npm.require("fs");
为此你需要一个Meteor包:meteorhacks:npm
,npm-container