R
Railway•4mo ago
Rose

Unable to build client side of CRUD app.

Good Evening, I hope everyone is well. I'm new to deploying to railway and fullstack and I'm stuck on deploying a CRUD app. This is what I have so far, any help would be greatly appreciated. My project id is : 66f997fc-fd5a-467c-a115-93b1badaf202 App is divided into two parts the api and client.
API : https://fullstackapp-production-36a6.up.railway.app/ Client : should be https://client-production-cf5a.up.railway.app Added the client (The log for the client is attached ) . When I deployed it I got an error that says
- UndefinedVar: Usage of undefined variable '$NIXPACKS_PATH' (line 18) LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 18) I have no idea what this means and I'm a bit new at this so I apologize if I ask alot of questions. Thank you very much for your help and your patience.
42 Replies
Percy
Percy•4mo ago
Project ID: 66f997fc-fd5a-467c-a115-93b1badaf202
Fragly
Fragly•4mo ago
Hey, the error you mentioned is just a warning and won't effect anything, I took a look at your build logs and it seems your error is:
#10 2.141 npm ERR!
code EUSAGE
#10 2.145 npm ERR!
#10 2.145 npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
#10 2.145 npm ERR!
#10 2.145 npm ERR! Invalid: lock file's [email protected] does not satisfy [email protected]
#10 2.145 npm ERR!
#10 2.145 npm ERR! Clean install a project
#10 2.141 npm ERR!
code EUSAGE
#10 2.145 npm ERR!
#10 2.145 npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
#10 2.145 npm ERR!
#10 2.145 npm ERR! Invalid: lock file's [email protected] does not satisfy [email protected]
#10 2.145 npm ERR!
#10 2.145 npm ERR! Clean install a project
Essentially, you just need to resynchronize your lockfile, which you can do by running npm install and then committing again
Rose
RoseOP•4mo ago
@Fragly okay.. I'll do that.. thank you @Fragly I just need to reinsall react again on the client side?
Fragly
Fragly•4mo ago
You just need to run npm install on your side to resync the the package-lock file Also if you're using react app then I'd recommend you copy the Caddyfile and nixpacks.toml from this repo by Brody into your repo: https://github.com/brody192/create-react-app-starter ( or if you're using vite then just do the same with https://github.com/brody192/vite-react-template ) This just ensures you're running it properly on Railway
Rose
RoseOP•4mo ago
@Fragly Thank you for assisting me, with the project. I removed package-lock.json and it was able to deploy. But when I typed npm install to create a new package-lock.json and pushed a new version it failed. Also should I create a new thread
Fragly
Fragly•4mo ago
We can keep going in this thread, can you share your build logs?
Rose
RoseOP•4mo ago
sure..give me one moment sorry to bother you on this
Fragly
Fragly•4mo ago
no worries!
Fragly
Fragly•4mo ago
It's still not synchronized D: this time it's even more unsynchronized cause there's a whole dependency missing too now
Rose
RoseOP•4mo ago
awww nooo how do you see it
Fragly
Fragly•4mo ago
If you did run npm install and then didn't change anything in your package.json afterwards which may have lead to it losing synchronization again then I'm wondering if you're not perhaps gitignoring the lockfile and github is now just storing a super duper outdated lockfile 🤔 in your build logs:
#11 2.359 npm ERR!
code EUSAGE
#11 2.365 npm ERR!
#11 2.365 npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
#11 2.365 npm ERR!
#11 2.365 npm ERR! Missing: [email protected] from lock file
#11 2.365 npm ERR! Invalid: lock file's [email protected] does not satisfy [email protected]
#11 2.365 npm ERR!
#11 2.365 npm ERR! Clean install a project
#11 2.365 npm ERR!
#11 2.365 npm ERR! Usage:
#11 2.365 npm ERR! npm ci
#11 2.365 npm ERR!
#11 2.359 npm ERR!
code EUSAGE
#11 2.365 npm ERR!
#11 2.365 npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
#11 2.365 npm ERR!
#11 2.365 npm ERR! Missing: [email protected] from lock file
#11 2.365 npm ERR! Invalid: lock file's [email protected] does not satisfy [email protected]
#11 2.365 npm ERR!
#11 2.365 npm ERR! Clean install a project
#11 2.365 npm ERR!
#11 2.365 npm ERR! Usage:
#11 2.365 npm ERR! npm ci
#11 2.365 npm ERR!
Rose
RoseOP•4mo ago
i do have a .gitignore in my client folder
Fragly
Fragly•4mo ago
is it set to ignore the lockfile?
Rose
RoseOP•4mo ago
GitHub
GitHub - rdelva/fullstack_app: A school database not real which u...
A school database not real which users can create and view courses. Built with a REST API, React and Express - rdelva/fullstack_app
Fragly
Fragly•4mo ago
oh cool, this certainly makes it easier
Rose
RoseOP•4mo ago
🙂 the lockfile isn't in there though.. just other stuff.. but i'm not sure that would cause th eissue
Fragly
Fragly•4mo ago
yea, you're not gitignoring it, I'm pretty confused now 🤣
Rose
RoseOP•4mo ago
no worries. I did use typescript on the api side but not in the client side and both folders both have there own package-lock.json file wait.. I looked at my api thing.. no I didn't 😦
Fragly
Fragly•4mo ago
While I'm looking through your project, I'm noticing a lot of things that is very bad to do in production: 1. in the API side, you're running the API using nodemon, it's very very bad to do that in production, run your app using node instead 2. in the API side, you're running npm i on build, you don't want to do that. Railway will install dependencies for you 3. in the API side, you're pushing your SQLite database to github, this is bad because it means once deployed, it won't persist through redeployments and it's a security vulnerability. This db includes passwords and your github is public 😬 you should consider getting rid of it ASAP. For future, you'd want to load your SQLite database into a volume using Filebrowser and then use it through there 4. your Caddyfile and nixpacks.toml was supposed to be thrown into the client side of your app, not in the root as for the current problem you're facing, it's definitely an issue with desynchronization between your package json and package lock json.. I'd recommend you try running npm install --package-lock-only again on the client side. if it still doesn't work after that then I'm out of ideas.. Useful resources: - https://docs.railway.app/tutorials/deploying-a-monorepo - https://github.com/railwayapp-templates/monorepo-example
Rose
RoseOP•4mo ago
thank you. I'll defintely making adjustments. Unfortunately this was from a teamtreehouse final project and the final part of it was to learn how to deploy it on railway
Fragly
Fragly•4mo ago
No problem!! What node version are you using locally?
Rose
RoseOP•4mo ago
i'm not sure.. its been a minute since I last checked one moment Node.js v16.13.2.
Fragly
Fragly•4mo ago
Version mismatch could be a probem.. Railway runs Node 18 by default, you can change the version railway uses by setting the engine in your package json files or just upgrade to node 18 on your side before regenerating the lockfile
Rose
RoseOP•4mo ago
nods k.. I'll do that..
Fragly
Fragly•4mo ago
Good luck :D
Rose
RoseOP•4mo ago
thank you again... if I'm stuck again..am I better off rebuilding and recreating everything again
Fragly
Fragly•4mo ago
I'm sure the app itself is fine, the issues I mentioned above are easy fixes luckily.. well except the public database one - that's practically unfixable, well you can fix it but it's gonna be hard to remove the damage since the creds will be in the github repo and you'll need to remove each commit containing it
Rose
RoseOP•4mo ago
the public database is fake.. they did it for learning purposes. But you do have a valid point that this isn't the best way to do it.
Fragly
Fragly•4mo ago
ohh okay, I had a feeling that was the case
Rose
RoseOP•4mo ago
Deployment was successful but the logged changed 😦 should I create a different thread for this?
Fragly
Fragly•4mo ago
I think you might've made your start command a build command on your service settings, just need to remove that
Rose
RoseOP•4mo ago
okie..thank you VICTORY!!!!! well almost something
Fragly
Fragly•4mo ago
Awesome!!! Happy to hear
Rose
RoseOP•4mo ago
thank you so much.. your patience with me.. .
Fragly
Fragly•4mo ago
of course :SmileFluent: it was no trouble at all
Rose
RoseOP•4mo ago
just one more thing.. int he future..whats the best way to prevent the desyncronization of the package-lock.json
Fragly
Fragly•4mo ago
In this case it likely was the version mismatch that caused the problems, prevention for that would just be to specify your node version in packagejson at all times Although to prevent that desynchronization, just don't edit dependencies or dependency versions straight from package json - use commands instead, or if you do edit it directly then just synchronize it again with npm i
Rose
RoseOP•4mo ago
nods understood.. have a wonderful day and bless you 🙂
Fragly
Fragly•4mo ago
Thank you, you too :)
Want results from more Discord servers?
Add your server