Upgrade to 1.6 failing

I ended up uninstalling meteor with chocolatey, uninstalling node/npm, deleting all files/folder for node/npm and reinstalling meteor with old installer. After few hours, I’m back to where I was 2 days ago but was not able to update to 1.6.

For those not following along is issue #9278, I’ve made a bit of progress in tracking the _extends problem down.

Since the JavaScript source code is available for edit I added a log message to the top of meteor-npm.js to print the search path using require.resolve("babel-runtime/helpers/extends") and discovered there were two instances of extends.js that were being included before the one in the 1.6.0 directory:

Users/Ron/node_modules/babel-runtime/helpers
Users/Ron/myProject/node_modules/babel-runtime/helpers

I renamed them and now the correct version of extends.js is being picked up. And now _extends is a function. All good, except now I’m getting:

C:\Users\Ron\AppData\Local\.meteor\packages\meteor-tool\1.6.0\mt-os.windows.x86_32\dev_bundle\lib\node_modules\meteor-promise\promise_server.js:218
      throw error;
      ^

TypeError: _objectWithoutProperties is not a function
    at Function.readDirsFromJSON (C:\tools\isobuild\bundler.js:356:6)
    at C:\tools\isobuild\bundler.js:2305:34
    at Function._.each._.forEach (C:\Users\Ron\node_modules\underscore\underscore.js:153:9)
    at Function.readFromDisk (C:\tools\isobuild\bundler.js:2297:7)
    at Object.readJsImage (C:\tools\isobuild\bundler.js:3234:18)
    at loadIsopacketFromDisk (C:\tools\tool-env\isopackets.js:296:23)
    at C:\tools\tool-env\isopackets.js:112:9
    at Object.exports.noYieldsAllowed (C:\tools\utils\fiber-helpers.js:37:14)
    at loadIsopackage (C:\tools\tool-env\isopackets.js:103:34)
    at new ServiceConnection (C:\tools\meteor-services\service-connection.js:28:21)
    at Object.exports.openServiceConnection (C:\tools\meteor-services\auth-client.js:12:10)
    at openPackageServerConnection (C:\tools\packaging\package-client.js:23:21)
    at _updateServerPackageData (C:\tools\packaging\package-client.js:151:14)
    at C:\tools\packaging\package-client.js:129:12
    at C:\tools\utils\buildmessage.js:334:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:333:36
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at Object.exports.updateServerPackageData (C:\tools\packaging\package-client.js:128:23)
    at C:\tools\packaging\catalog\catalog-remote.js:783:36
    at C:\tools\utils\buildmessage.js:334:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:333:36
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at RemoteCatalog.refresh (C:\tools\packaging\catalog\catalog-remote.js:782:18)
    at Object.catalog.refreshOrWarn (C:\tools\packaging\catalog\catalog.js:48:22)
    at catalog.Refresh.OnceAtStart.beforeCommand (C:\tools\packaging\catalog\catalog.js:21:16)
    at C:\tools\cli\main.js:1517:32
    at C:\tools\utils\buildmessage.js:334:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:333:36
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at C:\tools\cli\main.js:1516:20

I don’t know if this is because promise_server.js actually wants one of the extends.js files I renamed or if it is some other problem. I’ll try to track this error down tomorrow.

It seems like, at least for meteor.update, require should search the meteor-tool/1.6.0 directory first. But I don’t know enough about the update process to know how to do that.

Users/Ron/node_modules/babel-runtime/helpers
Users/Ron/myProject/node_modules/babel-runtime/helpers

also contained old copies of objectWithoutProperties.js. Removing/Renaming them allowed the update to succeed. But, of course, my project won’t compile because it can’t find extends.js and objectWithoutProperties because I renamed the copies that are under myProject. Sigh…

Can someone who understands the search paths for require explain why the build isn’t finding those files under the 1.6.0 directory when I do meteor run or update didn’t update the files in myProject?

Maybe this could help someone, to install Meteor-1.6 on Windows-10 do these:
Install Node-8 = https://nodejs.org/en/
Install Git - https://git-scm.com/
Then follow the installation guideline to install Chocolatey
After this run choco install meteor

I had similar issues and for some project I had to run a fresh install and copy my code across, until I found a thread that suggested meteor update --release 1.6 now i am able to update without all that headache. Hope it helps.

NOTE: Before running the ‘choco install meteor’ script at least for Windows 10, temporarily disable Windows Defender for the duration of your installation. WinDef prohibits choco from being able to make the necessary changes needed to install Meteor on your system, causing chocolatey to timeout. Changing the execution-time to zero (infinite) just won’t cut it-believe me I’ve tried. Save yourself the time and don’t hurt yourself overthinking it. The installation shouldn’t take long at all and should be virtually stress-free. Good luck, and give me a like so I know it helped you.

1 Like