Open rmr-code opened 4 months ago
It seems to be that the public
directory too needs to be copied. Hmm ... makes sense, I guess. I wonder if there is a way to have its content included too in the executable?
@rmr-code Do you have a solution? I met similar problem. I tried to add the html, css, js files which front UI need to assets:
{
"main": "out.js",
"output": "sea-prep.blob",
"assets": {
"favicon.ico":"./../client/dist/client/browser/favicon.ico",
"index.html":"./../client/dist/client/browser/index.html",
"main.js":"./../client/dist/client/browser/main.js",
"polyfills.js":"./../client/dist/client/browser/polyfills.js",
"styles.css":"./../client/dist/client/browser/styles.css"
}
}
Although I could get these files content by getAsset()
, but I could not use app.use(express.static('public'))
anymore.
@RaisinTen @jviotti @arcanis @Trott @ghoullier May I know how Node.SEA support the routing for static files?
PKG could package all necessary files (including front UI files) into one single exe, and extract them to temp folders during application running. When these files is requested, we could use express.static()
to get them by auto. How should I implement this in Node SEA?
@kerwenzhang: I could not figure this out. It was something I was experimenting with and not in a production environment. So shelved it for now.
@nodejs/single-executable
I have a simple node js application using a combination of static html files and api paths. I find that after I generate the executable, it works in the current directory that contains the source code but does not work when moved to another directory.
The error I get on loading 'https://localhost:3000' from a different directory is:
Cannot GET /
The following is the server.js
The following is:
config.js
The following is:
sea-config.json
And the following are the commands I used to create the server executable
1 Build using esbuild
3 create blob
4 create copy of exe
5 inject experimental node
When I run
./server
from the created directory, it works. However, when I move the exe to a separate directory and run it, it gives theCannot GET /
error.What am I doing wrong? Thanks