包含NPM包的Meteor.js中的'require is not defined'

我正在尝试使用Meteor.js (版本0.6.6.3)使用Meteor.require来使用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 

我们应该如何从meteor内部调用module

Meteor.require是meteor智能包中添加的一个函数,除了包装一些asynchronouscallback函数外,对于使用npm其实并没有多大的作用。 现在已经过了几个月了,所以你可能要直接尝试使用meteor的Npm.require ,以防万一发生了什么事情。

这个软件包的Meteor全球猴子补丁是误导性的。

做出回答以上的评论。

Meteor.require()是一个错字吗? 这是你的代码是什么,虽然你的问题文本引用了正确的Npm.require()。

我认为module.exports是有相同的文件的非meteor使用。 meteor内的变数应该是出口的

  1. 在包内声明为全局variables
  2. 在package.js文件中用api.export()导出。

关于这个文档有点粗糙,但看看命名空间和编写包 。 同时在github上查看各种meteor包是非常有用的。

确保你使用的是meteor-npm软件包。

https://www.npmjs.com/package/meteor-npm

在meteor中使用Npm.require()。

喜欢这个:

 var fs = Npm.require("fs"); 

为此你需要有一个Meteor包: meteorhacks:npmnpm-container