server.printUrls

  • Type:
type Routes = Array<{
  entryName: string;
  pathname: string;
}>;

type PrintUrls =
  | boolean
  | ((params: {
      urls: string[];
      port: number;
      routes: Routes;
      protocol: string;
    }) => string[] | void);
  • Default: true

Whether to print the server's URLs.

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:3000

Custom Logging

server.printUrls can be set to a function, with parameters including port, protocol, urls and routes.

Modify URL

If the printUrls function returns an URLs array, Rsbuild prints these URLs to the terminal in the default format:

rsbuild.config.ts
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/

Fully Customizable

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.

rsbuild.config.ts
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'
    },
  },
};

MPA Output

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:

rsbuild.config.ts
export default {
  server: {
    printUrls({ routes }) {
      /**
       * [
       *   { entryName: 'index', pathname: '/' },
       *   { entryName: 'detail', pathname: '/detail' }
       * ]
       */
      console.log(routes);
    },
  },
};

Disable Output

Setting server.printUrls to false will prevent Rsbuild from printing the server URLs.

rsbuild.config.ts
export default {
  server: {
    printUrls: false,
  },
};

HTML Disabled

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.

rsbuild.config.ts
export default {
  tools: {
    htmlPlugin: false,
  },
  server: {
    printUrls: ({ port }) => [`http://localhost:${port}`],
  },
};

Output:

➜ Local: http://localhost:3000