Error while updating to Meteor 1.4

@brucejo just the part meteor npm install --global --production windows-build-tools is the only thing I had to do from those install instructions. Actually when I tried to run meteor npm install -g node-gyp I got errors.

Make note that I ran these commands from an admin shell in the app directory and used meteor at the start of the command.

I had the problem while upgrading with fourseven:scss@3.2.0 package. I added the package again manually with meteor add fourseven:scss and it upgraded correctly. Then my whole meteor upgrade worked. I am using ubuntu, if anyone had the same problem :slight_smile:

Can confirm this worked for me on Windows 10. I had Windows Build Tools installed as described in the migrating to 1.4 and I ran npm install -g node-gyp in an Admin permission cmd.

OK, I did some digging around and I am trying to get some clarification on how to think about the meteor global repository in the dev_bundle.

I posted “Meteor and the npm global repository” to the forums.
I filed a bug: “‘meteor npm list -g’ not working on windows (looking in wrong directory)”

So far what I can gather is that:

  • node-gyp comes with the v1.4 dev_bundle
  • you need to make sure all the pre-req’s are installed so the node-gyp will be able to use the correct compiler for your environment.
  • installing code into your dev_bundle is not recommended. You should follow the instructions as listed:
npm install --global --production windows-build-tools

-not-

meteor npm install --global --production windows-build-tools

to get mine to work, I did:

npm install -g node-gyp

my pre-requisites were already in place.

I think there are some unanswered questions here:

  • If I install a package to the global node repository, will it override the dev_bundle version?
  • Do node-gyp pre-requisites need to be installed in the dev_bundle repository to make the dev_bundle version of node-gyp work? Maybe this is an exception to the overall guidance.

While i experienced the same issue. The only way i went around the problem was by uninstalling meteor and re-installing with a fresh download. It resolved all the problems. However i can understand that people are having issues updating existing projects that are based on the older build of meteor.

My suggestion is: use meteor remove … or locate the package file inside the .meteor folder and comment out the offending library. Thereafter you should be able to re-add it later once the update completes.

Hope this helps (worked for me on Windows 10 x64)

Edit: Unfortunately this did not work with all apps and i ran into an issue when a package had a dependency on fourseven:scss … Will keep everyone posted if i find a solution.

@brucejo I thought that was the “norm” when installing npm packages for Meteor (https://guide.meteor.com/using-npm-packages.html#installing-npm) That is the only reason I did it that way. I have only a high level understanding on how Meteor works (only 3 month experience) with not much npm experience and so I don’t think I’ll be able to shed much light on this subject other than what worked for me.

@aaronkenz Yes, it is the norm for project packages to do meteor install.

But node-gyp is a tool used by the build system and needs to be installed globally (e.g. -g). Installing globally into the dev_bundle should be considered very carefully.

Essentially, you altered the shipped dev_bundle by doing a -g install. But like I said above, I do not know if that is the right thing to do for the node-gyp prerequisites or not.

same exact problem with the same exact dependency… but on windows. So you did not remove the package name from the package.json file in .meteor you removed it via command prompt?

try this : meteor remove npm-bcrypt
meteor update
meteor add npm-bcrypt

1 Like

This worked for me! I am on OS X El Capitan (v. 10.11.6)

Thnk for sharing

I didn’t remove it, I just added it again via command prompt (meteor add packagename) and it installed correctly. Then I upgraded the whole project.

I feel that adding and removing these packages manually via terminal is too cumbersome because you might have many of these packages breaking. Since this whole round-trip might annoy some people around here. I dug into the problem a bit further and it is indeed related to the chaining of the dependencies.

In a nutshell if you add a dependency that is crashing during install to the chain before a given package requires it. You resolve the issue.

So for instance:

if materialize:materialize makes use of fourseven:scss and the latter crashes during installation.

  1. Go to packages.json (in .meteor folder)
  2. Put in the crashing dependency (fourseven:scss) in a line preceding the package being installed (materialize:materialize)

And the upgrade will go smooth…

Hope this helps.

Hey guys I had the same problem, I just remove node and reinstall on linux, after I tried to update and it worked.

It work for me, thank you!

Hey Guys, I have this prob. on a CentOS release 6.7.
i.e. => Errors while adding packages:

While loading package npm-bcrypt@0.8.7: etc…

Does any had this problem in Centos ? I tried some of the solutions above but none seems to work.

it works fine in macos - so it’s seems to be related with the Centos environment.

same on windows 10 :confused:

CentOS 6 is extra-tricky because its C++ compiler is too old for the version of V8 that Node 4 uses. I had to do the following:

curl -sL https://rpm.nodesource.com/setup_4.x | bash -
yum install -y nodejs devtoolset-3-gcc-c++

And then:

source scl_source enable devtoolset-3
export CXX=$(which c++)
cd programs/server
npm install
node main.js

YMMV - I’m using meteor build directly rather than mup etc.

2 Likes

Tnx Mrw34, yes, i found out in the end the issue was the compiler. I had to run the compilation/installation as sudo since some permissions issues was involved. Now I have a build-system that works on centos6.5 and manage to upgrade all my projects.

Hi Guys,

I tried the above but nothing worked for me so I created a new project and I copied all the code, db and config files to the new build project that is all ready created at 1.4… version.

  1. create a backup of the project
  2. create a new temp project “meteor create NewProj”
  3. delete all garbage files like main.html, main.js
  4. copy the following directories and file from the old porject to the NewProj
    a. all the directories except .meteor
    b. .meteor\local\db folder
    c. .meteor\packages file
  5. Verify that all other important file are copyed (acording to your project structure)
  6. run meteor… it will rebuild the project and will download all the packages (from the .meteor\packages file)

If it works, delete the old one (you have a backup) and rename the NewProj to the old one.

Good luck

installing build-essential on ubuntu solved this problem for me
sudo apt-get install build-essential

1 Like