繁体   English   中英

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

[英]'require is not defined' in Meteor.js when including NPM package

我正在尝试使用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

我们应该如何在流星内调用module

Meteor.require是由流星npm智能包添加的一个函数,除了包装一些异步回调之外,它实际上对使用npm没有多大帮助。 它已经有几个月了,所以你可能想尝试直接使用Meteor的Npm.require以防万一。

通过这个包裹对Meteor全球进行猴子修补是误导性的。

将评论置于答案之上。

Meteor.require()是错字吗? 这就是你的代码中的内容,尽管你的问题文本引用了正确的Npm.require()。

我认为module.exports用于同一文件的非流星使用。 在出口的流星变量中应该是

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

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

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

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

在流星中使用Npm.require()。

像这样:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM