简体   繁体   中英

nodejs - install production build of reactjs app on offline server, then set up to run as a service

I installed the following package globally using

npm install -g serve

on my development PC which has internet. It is currently the only package installed globally on my PC.

https://github.com/vercel/serve#readme

After I compile and create a build folder, i run the following command to have the production version of code run using HTTPS.

serve -s build --listen 3000 --ssl-cert "/my/cert/server.crt" --ssl-key "/my/key/server.key"

Ok, so here comes the problem. I have to run my code on a server that is not connected to the internet. I've copied and moved the global node_modules folder over to the server and confirmed the permissions are the same between the server and dev pc. I also confirmed that the package is seen as installed on the server by:

npm list -g --depth=0

When I run the serve command above on the server, it has no clue what serve is. CentOS complains about

bash: serve not found...

So, I added an alias to the./~bashrc file on the server (which I also had to do on my dev pc and reloaded:

vim ~/.bashrc
export PATH="$(npm bin -g):$PATH"
source ~/.bashrc

I found the export command in another SO post, and it worked on my dev pc, however linux still does not recognize the serve command. I also need to know how to determine how to run this command from within a service, which means I also need the absolute path of the "serve" command.

I'm kinda stuck on this, since all the articles online only talk about how to run "npm start" as a service, which I can do for a development build of software with no issues. I cannot find anything on how to set up a service for a production build.

I dont 100% need to use serve , but my other coworker is using it for his project, which has internet access.

I've even gone as far as trying to piece together the location of the main js file in the module:

/path/to/node_modules/serve/build/main.js -s build --listen 3000 --ssl-cert "/my/cert/server.crt" --ssl-key "/my/key/server.key"

This will allow me to start the service, but then I get all kinds of cross site scripting errors from my apache backend server.

Any help would, as always, be appreciated! Thanks!

Disregard,

When I ran npm install -g serve on the pc with internet, it created a soft link to the serve module. I discovered this by running the following on my dev pc:

which serve

I created that soft link on the offline server, and it appears to be working.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM