Templates that are served by the Django server: cfgov/jinja2/v1
Static assets prior to processing (combilation, minification, etc.):
cfgov/unprocessed.
!!! note
After running gulp build the site's assets are copied over to cfgov/static_built,
ready to be served by Django.
- Use
yarn add new_dep@se.m.verto install new dependencies or update existing dependencies. - If you can't do this for some reason or are looking to freshen all dependencies,
you will need to edit
.yarnrc, temporarily commenting out the--install.pure-lockfile trueand--install.offline trueflags before proceeding with your installation or update. - In the rare but observed case that
yarn add new_dep@se.m.verdoesn't add every needed package to the offline cache, you likely need to first runyarn cache clean.
Some projects can sit inside consumerfinance.gov, but manage their own asset
dependencies. These projects have their own package.json and base templates.
The structure looks like this:
- List an app's own dependencies in
cfgov/unprocessed/apps/[project namespace]/package.json.
- Apps may include their own
webpack-config.jsconfiguration that adjusts how their app-specific assets should be built. This configuration appears incfgov/unprocessed/apps/[project namespace]/webpack-config.js.
- Apps may include a
browserslist config
file, which is automatically picked up by
@babel/preset-envinside the webpack config, if nobrowsersoption is supplied.
- Images should be compressed and optimized before being committed to the repo
- In order to keep builds fast and reduce dependencies, the front-end build does not contain an image optimization step
- A suggested workflow for those with Adobe Creative Suite is as follows:
- Export a full-quality PNG from Adobe Illustrator
- Reexport that PNG from Adobe Fireworks as an 8-bit PNG
- Run the 8-bit PNG through ImageOptim
- Apps use a Jinja template that extends the
base.htmltemplate used by the rest of the site. This template would reside incfgov/jinja2/v1/[project namespace]/index.htmlor similar (for example, owning-a-home).
!!! note
A template may support a non-standard browser, like an older IE version,
by including the required dependencies, polyfills, etc. in its
template's {% block css %} or {% block javascript scoped %} blocks.