Creating production build
To create a production build of your theme, you must run the build command:
1
npm run build
Copied!
This creates a build directory with a production build of your app. Inside the build/static directory will be your JavaScript and CSS files. Each filename inside of build/static will contain a unique hash of the file contents. This hash in the file name enables long term caching techniques.

Heads Up!

When compiled as Magento 2 theme, the production build directory is changed to magento/Magento_Theme.

JavaScript chunks

When running a production build of freshly created Create React App application, there are a number of .js files (called chunks) that are generated and placed in the build/static/js directory:
main.[hash].chunk.js
  • This is your application code. index.js, etc.
[name].[hash].chunk.js
  • These files are code-splitting chunks. The code inside them includes modules that you've imported using the dynamic import() or following React.lazy approach.
[number].[hash].chunk.js
  • These files are vendor chunks. The code inside them includes modules that you've imported from within node_modules. Since vendor code tends to change less often than the actual application code, the browser will be able to cache them separately, and won't re-download them each time the app code changes.
runtime-main.[hash].js
  • This is a small chunk of webpack runtime logic which is used to load and run your application. The contents of this will be embedded in your build/index.html file by default to save an additional network request.

CSS chunks

Similarly with JavaScript in production, there are a number of .css files (called chunks) that are generated and placed in the build/static/css directory:
[name].[hash].chunk.css
  • These files are code-splitting chunks. The code inside them includes CSS modules that you've imported in JavaScript modules imported using the dynamic import() or following React.lazy approach.
[number].[hash].chunk.css
  • These files are vendor chunks. The code inside them includes CSS modules that you've imported from within node_modules.
main.[hash].chunk.css
  • This are styles imported in your application. index.js, etc.
Last modified 1yr ago