I want to use http-server and forever.js to deploy my app to remote ubuntu server. But forever.js requires path to JS file, not to executable. So I can't pass keys to http-server. Best solution so far is to install http-server locally via npm and run something like this: forever start ./node_modules/http-server/bin/http-server
. But in this case I can't set port and other options. What's the best practice?
You can set the options using that code. Just use the available flags after the end of your command. For example:
forever start ./node_modules/http-server/bin/http-server -p 80 -d false
I had the same issue. Found a node.js script that can run shell commands and used it to run the http-server command along with options.
example of node.js script named 'startserver.js':
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("sudo http-server -a ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com -p 80", puts);
Then you can run it using forever:
forever start startserver.js
Try this:
$ forever start $(which http-server) -p 8000 -d false
you can add any parameters after forever start $(which http-server)
$(which http-server)
: return the http-server path
-p 8000
: port 8000, change it to any port number
-d
: Show directory listings
This worked with me
First get path of http-server like this
which http-server
for example you will get "/usr/bin/http-server"
then after that write the forever followed by http-server path and your app path
forever start /usr/bin/http-server /your/app/path
Best regards.
Browse to your directory that contains your files And from the command line type: forever start -c http-server . -p your_port_number Example: forever start -c http-server -p 8000
In this way, the port 8000 will forever point to the html files in your directory.
This command works for me.
forever start npm\node_modules\http-server\bin\http-server
Before this you should find your npm directory.
© 2022 - 2024 — McMap. All rights reserved.