MeteorJS + npm: Cannot find module 'node-xmpp'

668 Views Asked by At

I followed this guide on http://meteorhacks.com/complete-npm-integration-for-meteor.html on how to use npm packages with meteor. Now I have this

packages.json

{
"node-xmpp": "0.10.0"
}

server.js

var xmpp = Npm.require('node-xmpp');

.meteor/packages

standard-app-packages
accounts-ui
accounts-github
insecure
accounts-base
accounts-password
npm

But I keep getting this when I run the server W20

140608-11:58:32.132(-4)? (STDERR) Error: Cannot find module 'node-xmpp'
W20140608-11:58:32.132(-4)? (STDERR)     at Function.Module._resolveFilename (module.js:338:15)
W20140608-11:58:32.132(-4)? (STDERR)     at Function.Module._load (module.js:280:25)
W20140608-11:58:32.132(-4)? (STDERR)     at Module.require (module.js:364:17)
W20140608-11:58:32.132(-4)? (STDERR)     at require (module.js:380:17)

Any ideas?

@ChristianFritz, Running npm install node-xmpp from the app's root directory creates \node_modules. When I run the server, meteor explodes, because it thinks they are regular application files.

=> Errors prevented startup:

While building the application:
node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima-six/demo/collector.html:1: Can't set DOCTYPE here.  (Meteor sets <!DOCTYPE html> for you)
1

There are 1 best solutions below

2
On

Use Meteor.require() instead of Npm.require().

var xmpp = Meteor.require('node-xmpp');

Explanation found in the npm package doc (http://meteorhacks.com/complete-npm-integration-for-meteor.html) :

Normally you are loading core npm modules using Npm.require(), But in order to load modules from your packages.json you need to use Meteor.require()