Packages installed on Default


#1

Hello Meteor Community!

I am new to meteor, and as such, I was wondering if there might be a diagram or something that shows ALL the tools installed by default with Meteor (eg. Angular, Cordova, Node, Git, etc…)

Please let me know! I’d hate to have installed all the tools twice, as I haven’t found an all inclusive list of what is installed by default.

Thanks!


#2

After you create a new meteor project with meteor create test in your cmd or Terminal,
the ‘test’ project should have a “.meteor” folder which contains a file named “packages”.
This file has all the list of packages pre-installed by default.

Besides, you do not have to worry about duplicate installations, the built-in package manager knows if you already have the same package installed.

Cheers


#3

Hi Meher,

Thank you for that information. What I was thinking, more broadly speaking, was what did I get when I did an:
curl httxp://install.meteor.com / | sh (link changed to disable it).

I found a link that shows the technology installed here, but was wondering if there was more to Meteor than what was listed on the page. For example, is Meteor installing Node, JADE, Angular, EmberJS, etc when it is installed, or do I have to perform an NPM install command to get those. If so, do I have to prefix it with “meteor”, or do I simply install the package via NPM and then add the dependencies to my package.json?

Thanks for the help!


#4

Hey,

Okay i think I got what you now. Here is a list of packages Meteor is shipped with.
But coming to second part of your question; NPM install package name
seems to install the package but I do not think it is encouraged.

Also, there seems to be this Meteor Package that allows you to

Use Npm Modules with Your Meteor App

I have personally not used any NPM module directly in my meteor application. Most of the time have found some equivalent package in meteor.
Cheers


#5

I think the answer you’re looking for is that when you are developing a Meteor web app, all the tooling and infrastructure is installed for you, including nodejs and MongoDB. (If you are developing mobile apps with Cordova, you will need to install some components yourself).

However, when you deploy your app into production, you will need to provide some basic infrastructure components (like nodejs and MongoDB). There are some deployment tools that will do that for you (for example, mup).


#6

Hi Rob,

Yes, as far as tooling, I do get that Meteor is handling the infrastructure. However, I wasn’t sure what exactly was included in that infrastructure. Am I simply getting a pre-baked file structure, with a few dependencies sprinkled in? Or is meteor installing the entire framework (MEAN Stack, emverJS, react, etc) and leaving it up to me to decide what I need?

The problem I don’t want to have is for example I installed Meteor, but want to use a different version of Mongo, or Angular. Who manages that? Do I simply install/update it via npm, and change the dependencies in the packages.json file, or do I have to do something with meteor to get it working? This is where my limited knowledge of the framework comes into play :smile:

Ultimately, I think the github repo link provided is closer to solving my problem, but it doesn’t say if those are available packages I can install, or if they are already installed for me and I just need to pick and choose what to use. If there is something that I need which isn’t in the infrastructure, what do I do? I think that is where mup comes in. Is that correct?

I see this question evolving from my original ask, but perhaps it is all interconnected. Thanks again for helping me through this!


#7

The standard development install process (curl …) really just installs little more than I indicated (nodejs, npm, MongoDB and build tooling - the meteor command).

When you come to write your app you start with an (almost) blank canvas (the bare minimum packages to build a fully working basic app) and add (or remove) packages as needed. Those packages are downloaded for you into that particular app when you add them (or deleted if you remove them). Many of the packages listed on that github link are internal and you will probably never refer to them explicitly.

However, if you want to use, say react or angular instead of blaze, you just add the required package (btw I don’t know of any Ember integrations). In most cases you never need to use the npm command.

If you want to use a different version of, say, angular than the default, you could fork the package as a local package and make whatever changes were needed.

Generally speaking, if you’re not too familiar with Meteor I would say that it works well if you don’t tinker with stuff. Similarly, if you want to tinker (and there’s a lot of scope for developing new functionality) it’s probably best to become familiar!

:smile:


#8

I agree with becoming familiar, it might just take some time! So if Meteor just installs a few items as part of the infrastructure, what would be the benefit of using it to develop as opposed to just installing everything via npm, and linking them as dependencies?

My goal is to create a cordova app on meteor, but I am not sure if it is worth it at this point to use Meteor vs a vanilla install of all the tools. Would you care to share any insight to that? I was hoping that everything could be self contained to Meteor, and then just push it to heroku and use it from there, but even that has it’s own headaches. One of which I found is that if you use Mongolabs, their version is not compatible with Meteor Mongo (but that is a different story I suppose).


#9

Meteor just makes it easy.

I’ve done no Cordova development, so I can’t - sorry.

Meteor supports 2.4, 2.6 and 3.0 - so not sure what you mean by that.


#10

Right now, the best mental model is to think of Meteor as a complete application development framework that just happens to use JavaScript and run that code inside Node.js. Most of the tools designed for vanilla JavaScript apps will not work out of the box with Meteor (like NPM) and vice versa.

The idea is that you can be more productive by using packages built for a specific platform rather than wiring them together yourself. Meteor also comes with a standard data stack that caches data on the client and enables you to use it without having to make REST API calls all the time, and a build system that makes it easier to transpile languages, build Cordova apps, etc.

We’ve taken great care to make sure Meteor ships with everything you need - so you don’t have to manually install Mongo, Node, Cordova, or anything else. Whenever there is more stuff that needs to be downloaded, the command line tool does it for you - for example when you want to do Android development it will link you to the appropriate guide for your system.