簡體   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