Are you running this on Glitch? On Node v14 you need to add the --harmony
flag in order for it to be included into the runtime.
I’ve changed the title and put your post under Glitch Help category because:
- This was not a Glitch issue.
- This is already possibly with Node v14
I see, how do I use that --harmony flag?
In your package.json file you can append --harmony
to the start script.
For instance:
{
"name": "hello-express",
"version": "0.0.1",
"description": "A simple Node app built on Express, instantly up and running.",
"main": "server.js",
"scripts": {
"start": "node server.js --harmony"
},
"dependencies": {
"express": "^4.17.1"
},
"engines": {
"node": "14.x"
},
"repository": {
"url": "https://glitch.com/edit/#!/hello-express"
}
}
Strange, I got it to work… Only thing that makes sense is that you aren’t using node v14
Well yea, I forgot that I put it back to v12 after it didn’t work to make the project online. Now I tried 14.x but it uses 10.x saying it can’t find v14
You can install nvm and run nvm install node
.
But how do I even stop glitch from using v10. It’s using that only and not the nvm’s node version
You can try putting this in your start script: /app/.nvm/versions/node/v14.4.0/bin/node amazing.js --harmony
Still uses node v10 only
It’s because of that
"engines": {
"node": "14.x"
},
Doesn’t make sense considering that Glitch doesn’t officially support 14.x?
Ok so till when should I wait?
No, you need to manually install node v14.
Run this command and it should automatically install Node v14 for you:
curl https://pastebin.com/raw/UCvD6VUH | bash
source ~/.bashrc
nvm install node
and after that change your start script like described in this post:
These doesn’t work as it always depends on the node I provide in package.json and if it isn’t there, it’ll use 10 as default version
It worked for me, so I don’t know what you’re on about…
Step 1. Install NVM manually. And install Node v14.
curl https://pastebin.com/raw/UCvD6VUH | bash
source ~/.bashrc
nvm install node
Step 2. Change package.json.
{
"name": "hello-express",
"version": "0.0.1",
"description": "A simple Node app built on Express, instantly up and running.",
"main": "server.js",
"scripts": {
"start": ".nvm/versions/node/v14.4.0/bin/node server.js"
},
"dependencies": {
"express": "^4.17.1"
},
"engines": {
"node": "12.x"
},
"repository": {
"url": "https://glitch.com/edit/#!/hello-express"
},
"license": "MIT",
"keywords": [
"node",
"glitch",
"express"
]
}
Step 3. Test.
const a = {
b: null,
c: {
d: true
}
};
console.log(a?.b?.c);
console.log(a?.c?.d);
Result:
It has some problems with my database packages. But anyway, leave it. I’ll just use when v14 is offically supported
Node.js v14 is now officially supported.