Installing a Meteor package is very straightforward thanks to the work that the Meteor Development Group has done. The Meteor package ecosystem is also very vibrate thanks to the amazing Meteor community. You can see all the contributions being make on AtmosphereJS – the source for Meteor packages.
So why should you forget everything you know about Meteor packages?
Because NPM packages are coming to Meteor.
What are Meteor Packages?
A Meteor package is a set of files that are bundled together and installed into Meteor projects. You can have client only files, server only files, and other assets bundled together and tested. These packages can be shared on AtmosphereJS and used by other developers in their Meteor projects as well.
What’s so great about them is that you know they will work in Meteor. When you are writing a Meteor app, it is nice to know that there are sets of reusable code that you can plop into your project. You don’t have to worry about building/minifying anything, transpiling any code, or adding the file to a build system.
What is an Node Package Module?
A NPM module is very similar to a Meteor package: there are files that are bundled together that you can use in your Node project. The NPM community is very large as well, so there are plenty of NPM modules to browse through, use, contribute to, and extend.
However, how do you include NPM modules in your Meteor app? Well, currently, it is a bit hacky. But central support for doing so is coming from MDG. Soon you will be able to load in NPM modules in your Meteor app and use them similarly to how you use a Meteor package.
But does that leave Meteor packages dead in the water? Who will want to create Meteor packages if they can create NPM modules? NPM modules would have more exposure and have a better chance of being used.
The future of Meteor package is currently in limbo, as the community discusses what the best course of action should be, and how to signal to other developers that their NPM modules are specifically for Meteor.