是可能的內流星使用的node.js包作爲described here,然而由於require
沒有全局定義的,具有傳遞依賴(如例如xml2js或AWS-IIb)的上如何與如何使用與Meteor有傳遞依賴關係的node.js庫?
ReferenceError: require is not defined
任何想法破包修復或解決此問題而不更改庫?
是可能的內流星使用的node.js包作爲described here,然而由於require
沒有全局定義的,具有傳遞依賴(如例如xml2js或AWS-IIb)的上如何與如何使用與Meteor有傳遞依賴關係的node.js庫?
ReferenceError: require is not defined
任何想法破包修復或解決此問題而不更改庫?
我按照linked question的指示操作。我使用node-xml2js庫以test fixture from the code base進行測試,並通過以下方式實現。
Meteor.startup(function() {
// This solves the issue
var require = __meteor_bootstrap__.require;
// The example from node-xml2js readme
var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser();
fs.readFile('/home/prashant/order.xml', 'utf8', function(err, data) {
parser.parseString(data, function (err, result) {
console.log(result);
console.log('Done');
});
});
});
我認爲,關鍵是要定義一個變量require
並將其分配給流星的需要的功能。當Meteor加載服務器資產時,它也會加載require
並解決傳遞依賴關係的問題。我沒有更改node-xml2js庫。
希望這會有所幫助!
在最新版本的流星(0.6.3,推測是起),你需要使用Npm.require()
而不是require()
本身。
也看看這裏:http://stackoverflow.com/questions/10587964/where-do-we-put-node-modules-we-install-by-npm-in-a-meteor-project – Joscha 2012-08-29 06:31:39