title: Meteor error using npm package when deployed
body: <p>So I was attempting to print PDF's to the client using a NPM package called html-pdf, locally everything works beautifully. I used a round about way to do this, I use Meteor.call to call a server method that then takes the buffered output from the pdf and sticks it in a collection. I use an autosubscribe to listen for a new pdf with the current user id then use a package to save the pdf to the browser. important code pieces below:</p>
  
  <p>client/helpers.js</p>
  
  <pre><code>Meteor.autosubscribe(function() {
  PdfsCollection.find().observe({
      added: function(item){
          var blob = new Blob([item.pdf], {type: 'application/pdf'});
          console.log('new pdf found');
          saveAs(blob, 'test.pdf');
          PdfsCollection.remove({_id: item._id});
      }
  });
  });
  </code></pre>
  
  <p>client/templates/quotes/quotes.js:</p>
  
  <pre><code>Template.QuotesEdit.events({
  "click #pdf" : function(event, template) {
  
      var html = Blaze.toHTML(Blaze.With(template.data, function() { return Template.QuotePrint; }));
      Meteor.call('createPDF', html, Meteor.userId());
  
  }
  });
  </code></pre>
  
  <p>server/pdf.js:</p>
  
  <pre><code>Meteor.methods({
  createPDF: function(html, userId) {
      var pdf = Meteor.npmRequire('html-pdf');
  
      pdf.create(html).toBuffer(Meteor.bindEnvironment(function(err,buffer) {
          PdfsCollection.insert({userId: userId, pdf: buffer});
      }));
    }
  });
  </code></pre>
  
  <p>The part that is causing the error is when I actually call pdf.create. There are two errors, in the server log I get this:</p>
  
  <pre><code>[Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] WARNING events.js:72
  throw er; // Unhandled 'error' event
  ^
  [Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] WARNING Error: write EPIPE
  at errnoException (net.js:905:11)
  at Object.afterWrite (net.js:721:19)
  [Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] ERROR Application crashed with code: 8
  [Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] NOTICE Starting application on port 9000
  [Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] INFO STATUS running -&gt; starting
  [Wed Apr 08 2015 03:23:16 GMT+0000 (UTC)] INFO STATUS starting -&gt; running
  </code></pre>
  
  <p>and in the browser console there is this:</p>
  
  <pre><code>GET https://ddp--3484-metcrm.meteor.com/sockjs/info?cb=qtrpq640d2 6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 w._start6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 (anonymous function)setTimeout (async)6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 n.delay6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 n.XHRLocalObject6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 X.doXhr6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 (anonymous function)setTimeout (async)6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 n.delay6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 X6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 q6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 T6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:34 a.extend._launchConnection6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:34 a.extend._retryNow6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:3 t.extend.withValue6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:3 n6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:3 e.bindEnvironmentsetTimeout (async)6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:3 t.extend.setTimeout6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:19 t.extend.retryLater6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:34 a.extend._retryLater6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:34 a.extend._lostConnection6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:34 a.extend._launchConnection.t.socket.onclose6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 r.dispatchEvent6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 (anonymous function)setTimeout (async)6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 n.delay6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 T._didClose6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 o._ir.onfinish6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 a.emit6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 X.doXhr.a.onfinish6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 a.emit6f6418a2bd63d77a57cb8a21c5b677d0f83c8d36.js:32 w._start.a.xhr.onreadystatechange
  oLxjjRxydCC5AuDig:1 XMLHttpRequest cannot load https://ddp--3484-metcrm.meteor.com/sockjs/info?cb=qtrpq640d2. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://metcrm.meteor.com' is therefore not allowed access. The response had HTTP status code 503.
  </code></pre>
  
  <p>I have now racked my brains for 3 hours trying to find the source of this working on my local server but not on Meteor. The two important packages here are:
      meteorhacks:npm (for using npm packages in meteor)
      pfafman:filesaver (for the saveas function I am using)</p>
  
  <p>Please any help is appreciated!</p>