New app deployment at NodeChef, empty container, trying to deploy by uploading via their UI. Meteor 2.14. tar.gz uploads fine, green bar goes to 50%, then: Failed to download the version of node specified
-----> Upload [================================================================] 100%
-----> Uploading bundle to container host (1)
-----> Received application package at deployment bridge
-----> Receiving application
-----> Total container hosts: 1
tried a couple different locations for engine in package.json but all get the same error, here’s the latest: { "name": "pix", "private": true, "engines": { "node": "20.x", "npm": "10.x" }, "scripts": { "start": "meteor run" }, "dependencies": { "@babel/runtime": "^7.23.5", "@giphy/js-components": "^5.13.0", "@giphy/js-fetch-api": "^5.6.0", "@popperjs/core": "^2.11.8", "@tensorflow/tfjs": "^4.20.0", "@tensorflow/tfjs-node": "^4.20.0", "bootstrap": "^5.3.3", "chart.js": "^4.4.2", "emoji-picker-element": "^1.21.3", "intro.js": "^8.0.0-beta.1", "jquery": "^3.7.1", "meteor-node-stubs": "^1.2.7", "moment-timezone": "^0.5.45", "sweetalert2": "^11.10.5" }, "devDependencies": { "chai": "^4.2.0" } }
Thanks @rjdavid but I’m not seeing anything there that addresses the issue? Maybe I’m missing the point? Seems like my node version is fairly recent and this is speaking to much older versions? I guess I’m not sure if NodeChef has any node version limitations?
In your project root, what is the output when you run meteor node --version
interesting! it’s v14.21.4 I didn’t realize it could be different? should I put that in the engine object?
That version of node is a fork by meteor and only available from the link I posted above. Depending on how you deploy, you need to consider that the version output of the command above is a non-existing version from node’s own repo.
Thanks for the clarification, it’s not clear fromt the link if other options are available? Can I “force” an existing node option in the app/project?
Must be node 14 (and caveat about potential security issues that might our might not be critical)
Do you think using
"engines": {
"node": "14.x"
},
in package.json is the correct approach? I see the link mentions downloading ESM 14 but presumably I already have it if my meteor node --version output shows v14.21.4?
meteor node
is only available in your development environment.
When you build your app for production, you transform your meteor app into a regular node app that can run without meteor.
Wherever you are going to deploy that node app must have node 14 installed. The version recommended by meteor is the forked version above with security fixes backported from more recent node versions. You can still use the latest node 14 version provided by node itself without security fixes.
I am not familiar with node chef but it is clear the deployment was downloading a version of node not available from wherever it was trying to download it.