Builds the project for production.
npx frontity build [options]The frontity serve command will use the files generated by this frontity build command.
Arguments#
[options]#
| Option | Description |
|---|---|
--development |
Builds the project for development. Related environment variable: FRONTITY_BUILD_DEVELOPMENT |
--target |
Builds the project. Create bundles with "es5", "module" or "both". Default target is "both". Related environment variable: FRONTITY_BUILD_TARGET |
--publicPath |
Set the public path for static assets. Default path is "/static/". Related environment variable: FRONTITY_BUILD_PUBLIC_PATH |
--help |
Output usage information |
Examples
- Builds the project for production using an external domain
https://external-domain.com/staticas the path for static files
npx frontity build --public-path="https://external-domain.com/static"The --development option#
This flag correspond to webpack’s mode parameter so it will run webpack in the development mode as described there.
For example, when running react in development mode (when process.env.NODE_ENV is set to development and NOT to production) you get full error messages and warnings from React but at the cost of slower performance.
npx frontity build --developmentSo, it’s basically the same as just running frontity dev except that it will only build the project once and will not run the development server.
The --target option#
The target option allows to decide what features will be transpiled with babel.
With --target es5, the support of the following browsers as the minimum is:
es5: {
browsers: [
"and_chr >= 67",
"and_ff >= 18",
"and_uc >= 11.8",
"android >= 67",
"not android <= 4.4.4",
"chrome >= 49",
"edge >= 12",
"firefox >= 18",
"ios_saf >= 10",
"not op_mini all",
"op_mob >= 46",
"opera >= 36",
"safari >= 10",
"samsung >= 5",
],
},So, Frontity don't transpile any features that those browsers already support. In particular Frontity aim to support only the browsers that ship with the built-in Proxy object . This list comes from here and it is used by the @babel/preset-env to determine how to transpile the files.
With --target module, Frontity tell babel to only support the browsers that support ESModules
The --public-path option#
By default Frontity will look for static assets in the path <YOUR-DOMAIN>/static
With the --public-path option you can change the path from where you are serving the statics assets (i.e. js chunk files, fonts, images, etc.)
The public path is included in the generated files by webpack and cannot be changed after that.
In case some people need to change it (because of constrains in their site architecture) they would need an option to do so just before generating the Frontity bundle with npx frontity build.
This option is also available for dev command
Example:
npx frontity build --public-path="/other/folder"Environment Variables#
FRONTITY_BUILD_TARGET#
Create bundles with es5, module or both. Default target is both.
If detected, and no --target option is defined for build Frontity command, this environment variable will be applied.
Example:
FRONTITY_BUILD_TARGET=module
FRONTITY_BUILD_TARGET=esFRONTITY_BUILD_DEVELOPMENT#
Frontity by default builds the server in "production mode". Setting this variable makes it run in "development mode" (with disabled optimizations, etc.)
Example:
FRONTITY_BUILD_DEVELOPMENT=trueFRONTITY_BUILD_PUBLIC_PATH#
Set the public path for static assets. Default path is /static/.
If detected, and no --public-path flag is defined for build Frontity command, this environment variable value will be applied.
Example:
FRONTITY_BUILD_PUBLIC_PATH=/assets/