Meteor packages almost always fail to install - meteor

My experience with meteor has always been the same: a few packages install with mrt add but most of them exit with some error.
Errors such as
Template names shouldn't contain '.' or '/'
Parse error: ... {{> yield region='menu'}}
There was a problem checking out tag: v0.6.1
error: File not found: lib/moment/moment.js
Parse error: ... afFieldMessage name=field autoform=../.
These were some of the errors I was presented with when I just now tried to do mrt add with houston, ogno-admin, autoform, tabs, issues, and wizard.
I realize this is a vague question, but what am I doing wrong?
Do other people have this experiene with meteor? It would be a really easy way to build lots of different apps if only it worked at all!

Meteorite is wonky sometimes. If you are seeing random errors like this, you may want to follow the cleanup instructions for Meteorite, and make sure you are using the latest version. The moment error you're seeing above happens, for example, when Meteorite fails to check out the git submodule in meteor-moment.
Make sure you're up to date.
sudo -H npm update -g meteorite
Then, quoted from Meteorite troubleshooting:
mrt uninstall
mrt uninstall --system
mrt install .
One other thing, mentioned in the comments, is that unmaintained packages that use the UI will very likely be broken in Meteor 0.8. So don't confuse that with Meteorite errors.

Related

Meteor: How do you exactly install phantomJS?

There isn't a clear guide on how to install Phantom for Meteor, so I decided to ask a question to clarify things.
Do you have to install phantom binary in /usr/local/bin/? I downloaded a compiled phantomjs from the official website and placed inside the above path. I can run phantomjs from anywhere now because it's added to path.
In addition to 1, do you also have to install it from meteor npm? I followed this to install "phantomjs": "1.9.13" as a npm package inside my Meteor app. It gets confusing from here because the binary from the official website is v2.0.0 while the npm package is 1.9.13. Do I need to install both?
Because of the confusion in 2, I removed /usr/local/bin/phantomjs but then I can't run $phantomjs anywhere because I don't have anything in PATH.
My ultimate goal is to get spiderable working. What should I do?
Okay, the problem was the compiled phantomjs binary from the official webpage cannot be used right away in the latest Mac OS, but you have to unpack it first. To run spiderable package you don't need to do anything other than placing the binary file phantomjs inside your local path /usr/bin/local/. You can test this by running $phantomjs in your terminal. If you see phantomjs not found then you haven't installed it. If you see an error killed 9 then you have the same problem as mine, and you can solve it by following this.
You do not need the meteorhacks:npm package.
You can do this in two ways:
Method 1:
If you'd like to be able to use PhantomJS via your Meteor app, you would need to use the Meteorhacks NPM package and use the latest NPM version 1.9.16 I believe.
After that, you can edit your packages.json file to add "phantomjs": "1.9.16", and then reference it via var phantomjs = Meteor.npmRequire('phantomjs');
Method 2:
Alternatively, you can use the smart package for Meteor PhantomJS and give that a shot.
I personally feel like Method 1 is a better option, as that worked for me. I needed PhantomJS for an app, and that solution worked for me. I haven't tried Method 2 so I can't speak for it, but it looks promising as well.
Give them a shot, and let me know how it goes. Hope that helps!
Here is a phantomjs wrapper package from atmosphere: https://atmospherejs.com/gadicohen/phantomjs
More importantly here is the spiderable package:
https://atmospherejs.com/meteor/spiderable
I couldn't really answer the questions but more so point ya in a direction that I hope will solve your problem :)
In the terminal:
$ meteor npm install --save phantomjs
In your_meteor_app/server/main.js file (or wherever, provided it's server-side)
import phantom from 'phantom'
Just use npm:
//Global effect on your machine
npm install -g phantomjs
//Test if installed
npm list -g
//Test spiderable working correctly
Test spiderable

Node-csv-npm install causes Meteor to hang at "Starting your app..."

I created a new meteor app using meteor create, including bootstrap and coffeescript.
Then I added the following packages:
sudo npm install -g meteorite
mrt add filepicker
sudo mrt add xml2js
All is well at this point. I can start the app and see Hello World just fine.
Then I try to add the csv package:
sudo mrt add node-csv-npm
Install goes well, but when I go to start the app, in the terminal, it hangs at "Starting your app."
Open to any ideas.
Thanks!
This is not tied to the node-csv-npm package, I had the problem with another one that was working great an hour ago, but needed to be re-added due to branch merging. Unfortunately, the only solution I've found is a brutal one:
Remove all traces to the package from packages folder, smart.json, smart.lock and packages/.gitignore to be sure.
After that, manually add package/packagename folder with source of the package.

Iron Router doesn't update

I'm trying to update to the version 0.6.2, but when I insert mrt update iron-router in the command line I receive this alert:
Problem installing iron-router
✘ [0.6.1] conflicts with [0.6.2]
Can't resolve dependencies! Use --force if you don't mind mrt taking a wild guess and running your app anyway.
Am I doing something wrong?
Thanks in advance.
You could try a fresh installation:
meteor remove iron-router
rm -rf packages/iron-router
mrt update
meteor add iron-router
Also make sure you're using the latest version of meteorite
sudo -H npm install meteorite
It seems that one of the other smart packages you are using explicitly depends on a different version of Iron Router. Based on the smart.json packages that you posted, accounts-entry depends on 0.6.1 and I'm guessing you are manually depending on iron router 0.6.2 in your main app.
The best course of action is to probably change the version in accounts-entry (it will probably not break anything, as 0.6.1 to 0.6.2 was just bug fixes) and possibly submit a pull request for that as well.
Had a Similar problem.
Go to you app directory, open meteor, then open packages and you will see
iron-router
inside the file listed as a meteor package.
Then go to the terminal and
cd yourApp
meteor add iron:router
for me that added the 1x version and solved many of my errors.
Hope it works!

Error when adding package accounts-ui-bootstrap-dropdown

I'm trying to add a package to a meteor project using meteorite using the command:
mrt add accounts-ui-bootstrap-dropdown
And the command shows me this error:
tag: https://github.com/erobit/meteor-accounts-ui-bootstrap-dropdown.git#v0.1.5
fs.js:730
return binding.symlink(preprocessSymlinkDestination(destination, type),
^
Error: ENOTDIR, not a directory '/Users/arturcarvalho/projects/effinlist/.meteor/packages/accounts-ui-bootstrap-dropdown'
at Object.fs.symlinkSync (fs.js:730:18)
at /usr/local/lib/node_modules/meteorite/lib/dependencies/package.js:129:10
at /usr/local/lib/node_modules/meteorite/lib/sources/git.js:75:15
at GitSource._load (/usr/local/lib/node_modules/meteorite/lib/sources/git.js:120:12)
at /usr/local/lib/node_modules/meteorite/lib/sources/git.js:73:18
at /usr/local/lib/node_modules/meteorite/lib/sources/git.js:89:5
at /usr/local/lib/node_modules/meteorite/lib/sources/git.js:216:5
at ChildProcess.exithandler (child_process.js:635:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:735:16)
If I run mrt list after this, it shows me the following error:
While building package `accounts-ui-bootstrap-dropdown`:
error: no such package: 'accounts-urls'
I can't uninstall the package and tried to reinstall meteorite but no luck. Could somebody help me with this? I'm using Max OS X.
Thanks!
are you on Meteor 0.6.5?
if so it's because the package hasn't been updated yet to work with that version, there was a lot of api changes in the way you format your package.js file and most packages on meteorite haven't been updated to adhere to the new style yet so they all break.
Recommendation:
1 Use this command to downgrade and wait a few weeks until atmosphere packages get corrected
"The way to downgrade is:
$ meteor update --release 0.6.4.1
... but that won't actually undo the other change that updating your
app to 0.6.5 did. So you'll also want to edit your ".meteor/packages"
file and remove the line "standard-app-packages". "
2 Send a PR to the package creator with an updated package.js file adhering to the api rules listed here
https://github.com/meteor/meteor/blob/devel/History.md
File that needs to be updated:
https://github.com/erobit/meteor-accounts-ui-bootstrap-dropdown/blob/master/package.js
The package has been updated on atmosphere to support the latest meteor release v0.6.5. If you are running latest meteor, you should be able to simply remove and re-add the package.
mrt remove accounts-ui-bootstrap-dropdown
mrt add accounts-ui-bootstrap-dropdown
Note: Refer to the readme on the github project page at the url below, as I have updated the installation instructions with more details.
https://github.com/erobit/meteor-accounts-ui-bootstrap-dropdown/blob/master/README.md
Can you try add 'accounts-urls' first?

Can't install via mrt in meteroite

I cannot install any packages from atmosphere. On my mac, curl and git installed, i do:
mrt add router
And it happens nothing. No error, no warning, just a non ending process.
Same is true when I do
mrt add somepackagethatdoesnotexist
Since this leaves me without any clues on what to debug, I hope this sound familiar to someone :)

Resources