By default, Wireit assumes that scripts eventually exit by themselves. This works well for things like building or testing. But sometimes a script runs indefinitely, such as a server.
Setting "server": true will tell Wireit that a script runs indefinitely. This has the following effects:
-
It will always run. It will never be skipped or restored from cache.
-
If something depends on the server, Wireit won't wait for the server to exit before the dependent script starts running. Instead, it just waits for the server process to be spawned.
-
If a server script is run directly (e.g. npm run serve), then it will stay running until the user kills Wireit (e.g. Ctrl-C).
-
If a server script is run indirectly (e.g. npm run script-that-depends-on-server), then the server script will stay running until all scripts which transitively depend on it have finished.
-
In watch mode, Wireit will restart the server whenever a dependency changes. If this isn't required for a particular dependency (such as for static assets that the server does not cache), the dependency edge can be annotated with "restart": false.
{
"scripts": {
"build": "wireit"
},
"wireit": {
"serve": {
"command": "node lib/server.js",
"server": true,
"dependencies": [
"build:server",
{
"script": "build:assets",
"restart": false
}
],
"files": [],
"output": []
}
}
}
By default, Wireit assumes that scripts eventually exit by themselves. This works well for things like building or testing. But sometimes a script runs indefinitely, such as a server.
Setting
"server": truewill tell Wireit that a script runs indefinitely. This has the following effects:It will always run. It will never be skipped or restored from cache.
If something depends on the server, Wireit won't wait for the server to exit before the dependent script starts running. Instead, it just waits for the server process to be spawned.
If a server script is run directly (e.g.
npm run serve), then it will stay running until the user kills Wireit (e.g.Ctrl-C).If a server script is run indirectly (e.g.
npm run script-that-depends-on-server), then the server script will stay running until all scripts which transitively depend on it have finished.In watch mode, Wireit will restart the server whenever a dependency changes. If this isn't required for a particular dependency (such as for static assets that the server does not cache), the dependency edge can be annotated with
"restart": false.{ "scripts": { "build": "wireit" }, "wireit": { "serve": { "command": "node lib/server.js", "server": true, "dependencies": [ "build:server", { "script": "build:assets", "restart": false } ], "files": [], "output": [] } } }