type Routes = Array<{
entryName: string;
pathname: string;
}>;
type PrintUrls =
| boolean
| ((params: {
urls: string[];
port: number;
routes: Routes;
protocol: string;
}) => (string | { url: string; label?: string })[] | void);trueControls whether and how server URLs are printed when the server starts.
By default, when you start the dev server or preview server, Rsbuild will print the following logs:
➜ Local: http://localhost:3000
➜ Network: http://192.168.0.1:3000server.printUrls can be set to a function, with parameters including port, protocol, urls and routes.
If the printUrls function returns a URLs array, Rsbuild prints these URLs to the terminal in the default format:
export default {
server: {
printUrls({ urls }) {
return urls.map((url) => `${url}/base/`);
},
},
};Output:
➜ Local: http://localhost:3000/base/
➜ Network: http://192.168.0.1:3000/base/You may also return an array containing both strings and objects. Each object may include an optional label that overrides the default Local: or Network: label; if omitted, the default label is used:
export default {
server: {
printUrls({ urls }) {
return urls.concat({ url: 'https://example.com/', label: 'Custom:' });
},
},
};Output:
➜ Local: http://localhost:3000/
➜ Network: http://192.168.0.1:3000/
➜ Custom: https://example.com/If the printUrls function does not return a value, Rsbuild will not print the server's URL addresses. You can customize the log content based on the parameters and output it to the terminal yourself.
export default {
server: {
printUrls({ urls, port, protocol }) {
console.log(urls); // ['http://localhost:3000', 'http://192.168.0.1:3000']
console.log(port); // 3000
console.log(protocol); // 'http' or 'https'
},
},
};If the current project contains multiple pages, you can generate a separate URL for each page based on the routes parameter.
For example, when the project contains two pages, index and detail, the content of the routes would be:
export default {
server: {
printUrls({ routes }) {
/**
* [
* { entryName: 'index', pathname: '/' },
* { entryName: 'detail', pathname: '/detail' }
* ]
*/
console.log(routes);
},
},
};Setting server.printUrls to false will prevent Rsbuild from printing the server URLs.
export default {
server: {
printUrls: false,
},
};If tools.htmlPlugin is set to false, Rsbuild will not generate HTML files or output the server URL.
However, you can still print the server URLs using the server.printUrls function, which has a higher priority.
export default {
tools: {
htmlPlugin: false,
},
server: {
printUrls: ({ port }) => [`http://localhost:${port}`],
},
};Output:
➜ Local: http://localhost:3000| Version | Changes |
|---|---|
| v1.5.17 | Support for custom label |