These days, I find myself working a lot with JavaScript framework, despite my background being more in the back-end part of the web development industry. Especially Nuxt 3, a meta-framework for Vue.js, is a framework I absolutely love developing websites and web applications with due to its flexibility and awesome developer experience (DX).
Table of Contents
However, recently, whenever I ran the development server via any package manager, be it npm
, yarn
, or bun
inside the CLI on macOS, Node.js, which is the runtime environment of JavaScript code on web servers, gave me an ugly and somewhat concerning-looking error message:

Even though it says ERROR
, it didn’t prevent the application from starting. But I don’t like errors, and that’s why it had to go. Oh, and please don’t ask me what “schnullergpt” is, it’s just yet another AI wrapper I used to tinker around a bit with different LLMs.
tl;dr
Downgrade Node.js to v22.11.0
which brings npm down to v10.9.0
. Alternatively, create a .env
file in your project root folder and add the following line to suppress the error message:
NODE_OPTIONS='--disable-warning=ExperimentalWarning'
BashPackage Manager
First, I thought this had something to do with the package manager I mostly use, which is bun. I like bun, mostly because I feel it caches packages more efficiently and is, therefore, faster when—once again—I have to purge my node_modules
file because some dependency isn’t happy. To install the latest version of bun and try it out for yourself, use one of the following methods for your OS:
macOS and Linux
# via cURL
curl -fsSL https://bun.sh/install | bash
# via Homebrew
brew install oven-sh/bun/bun
# via npm itself
npm install --global bun
BashWindows
# via PowerShell
powershell -c "irm bun.sh/install.ps1|iex"
# via npm itself
npm install --global bun
# via Scoop
scoop install bun
BashCheck the installation page for more details if you want to use Docker or older versions.
The dev
script, as defined in the package.json
of your Nuxt root directory, starts the development server (npm run dev
, yarn dev
, bun run dev
). I ran all three but always ended up with the same error message. Weird.
The Solution
The culprit was easily found via Google. In an issue on GitHub regarding this bug it became quickly clear that it had nothing to do with the package manager but with Node.js’ runtime environment. The answer came pretty promptly from the user shadowspan:
This is triggered by the experimental
--experimental-require-module
flag being made the default behaviour in Node.js 23.
Makes sense. Indeed, I had just switched to the latest version of Node.js, which was 23, via the Node Package Manager, or nvm
as a command, a pretty handy tool to, well, switch around Node.js versions. Downloading it via Homebrew is probably the easiest way (brew install nvm
).
I ran nvm use 22
to downgrade to v22.X.X
, but I needed to install it first with nvm install 22
(you don’t have to enter the full version number). In fact, v22.11.10
is Node.js’ latest LTS (long-term support) version, which is always a good version to install to avoid compatibility issues with too-new versions. You can also install or use the current LTS version by changing the version number to --lts
, as in nvm use --lts
. After that, don’t forget to set it as the default Node.js version via nvm alias default 22
This is how it looked in my CLI after installing the LTS. It automatically tells you what version is now active, both for Node.js and npm
:

The Alternative
In case you don’t want to mess around with your Node.js version, there’s also an alternative, mentioned in the GitHub issue by Jordan Harband under the username lijarb:
@planetarquasar those are just log messages, it shouldn’t interfere with a build process. you can set
NODE_OPTIONS='--disable-warning=ExperimentalWarning'
, though, and suppress them.
So, the alternative solution is to create a .env
file in the root directory of your installation with the following line:
NODE_OPTIONS='--disable-warning=ExperimentalWarning'
BashMake sure to check whether you already have a .env
environmental file in your installation directory by checking all files (including invisible.
-files) by running ls -la
:

ls -la
to list all files, including hidden onesThat’s how my directory looked like. So, no .env
there, that means creating one, opening with a text editor of your choice, and adding that line from above manually. Use touch .env
to create the file and then open .env
or, if you have a specific editor you prefer (I’m currently testing Zed, which has some nice features, so I used the CLI command zed .env
):

touch
to create an empty .env
fileNow, add the following line in there, save it, re-open the CLI and try running the development server again:
NODE_OPTIONS='--disable-warning=ExperimentalWarning'
BashThe Result

Awesome, no error message anymore. Now I can get back to spending the night with my favorite JS meta-framework.