This chapter will introduces the directory structure of output files and how to control the output directory of different types of files.
The following is a basic directory for output files. By default, the compiled files will be output in the dist
directory of current project.
The most common output files are HTML files, JS files, and CSS files:
static/js
directory,static/css
directory.In addition, JS files and CSS files sometimes generate some related files:
.LICENSE.txt
suffix..map
suffix.In the filename, [name]
represents the entry name corresponding to this file, such as index
, main
. [hash]
is the hash value generated based on the content of the file.
Rsbuild provides some configs to modify the directory or filename, you can:
When you import static assets such as images, SVG, fonts, media, etc. in the code, they will also be output to the dist/static
directory, and automatically assigned to the corresponding subdirectories according to the file type:
You can use the output.distPath config to uniformly input these static assets into a directory, for example, output to the assets
directory:
The above config produces the following directory structure:
When the output.targets of Rsbuild contains 'node'
, or you have enabled server-side features such as SSR in the higher level solutions, Rsbuild will generate some output files for Node.js and output them to the server
directory:
Node.js files usually only contain JS files, no HTML or CSS. Also, JS file names will not contain hash.
You can modify the output path of Node.js files through the output.distPath.server config.
For example, output Node.js files to the server
directory:
Sometimes you don't want the dist directory to have too many levels, you can set the directory to an empty string to flatten the generated directory.
See the example below:
The above config produces the following directory structure:
By default, Rsbuild does not write the output files to disk during development. Instead, the files are stored in the memory of the dev server to reduce the overhead of file operations.
You can write the output files to disk, which is typically used for inspecting the contents of the build artifacts or configuring proxy rules for static assets.
Set the dev.writeToDisk configuration option to true
as follows: