Meteor 3.0.3 - denque not found

I’m getting this fairly regularly, and confirmed it’s happening on two entirely separate machines for the same project.

Basically the only solution is to:

  • fully uninstall meteor npx meteor uninstall
  • followed by reinstall npx meteor@3.0.3 install, and the error goes away.

I’ve tried fully deleting my project’s node_modules (and reinstalling of course).
As well as a full deletion of the /.meteor/local folder in it’s entirety.

When running the app [ meteor --inspect ] it results in the following messages and final error, after compilation:

  • Started proxy.
  • Started HMR server.
  • Started MongoDB.
  • Building for os.windows_x86_64
  • Building the application
  • Building your app
  • error on boot.js Error: Cannot find module 'denque'
Require stack:
I20241015-12:20:13.626(-5)? - D:\repos\project\.meteor\local\build\programs\server\boot.js
I20241015-12:20:13.626(-5)? - D:\repos\project\.meteor\local\build\main.js
     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
     at Function.resolve (node:internal/modules/helpers:190:19)
     at Object.require (D:\tools\static-assets\server\boot.js:295:34)
     at packages\meteor.js:815:50
     at packages\meteor.js:967:4
     at processNext (packages\core-runtime.js:127:30)
     at Object.queue (packages\core-runtime.js:111:3)
     at packages\meteor.js:1:47

It keeps coming back, and I keep having to fully reinstall meteor.
Anyone else encountering this? Or have any ideas what I can do to permanently resolve this?

I can confirm the package does not exist under: C:\Users\MyUser\AppData\Local\.meteor\packages\, so perhaps there’s something missing or I need to manually install it directly into meteor’s core package list somehow?

Have tracked this down…
It’s beause meteor is using native tar on windows, but the packages appear to be bundled using symlinks from linux, and the native tar system cannot handle it with UAC.

When running meteor install, it’s failing to extract many items in the packages folder (their node_modules folders specifically).
Such as:

 Can't create '\\?\C:\Users\MyUser\AppData\Local\.meteor\packages\babel-compiler\7.11.0\npm\node_modules\.bin\browserslist': Invalid argument

By modifying extract.js , I found the tar command to be:

tar -xf "C:\Users\MyUser\AppData\Local\Temp\tmp-12852-mHXdoLG4nUvc\meteor.tar.gz"  -C "C:\Users\MyUser\AppData\Local"

And by converting it to 7zip:

7z x "C:\Users\MyUser\AppData\Local\Temp\tmp-12852-mHXdoLG4nUvc\meteor.tar.gz" -so | 7z x -aoa -si -ttar -o"C:\Users\MyUser\AppData\Local\"

I came to the more helpful error message:

ERROR: Cannot create symbolic link : A required privilege is not held by the client. : C:\Users\MyUser\AppData\Local\.meteor\.meteor\packages\babel-compiler\7.11.0\npm\node_modules\.bin\browserslist

So with that knowledge, I see that for this to function properly, I must configure my machine to allow the “Current User” to create symbolic links.
ie:

  • Local Security Policy
  • Local Policies
  • User Rights Assignment
  • Add current user to “Create Symbolic Links Privilege”
  • restart computer (since for whatever reason gpupdate /force doesn’t apply this change)

With that, the regular user can run tar safely for the symlinks in the meteor sub module packages.
And therefore cmd prompt running as Administrator is no longer required for Meteor installation.

Which has resolved this for me, both at time of original installation, and Critically → subsequent building of my local project.

Solved - This topic can be closed.

1 Like

The npm installer for Meteor used to correctly handle being run for users that do not have permissions to create symlinks. This seems to be a regression from the changes to use native tar when available on Windows.

1 Like