chore: load or create svgo.config.js#10211
Conversation
✅ [V2]Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify site configuration. |
⚡️ Lighthouse report for the deploy preview of this PR
|
|
Thanks for your PR @SethFalco and really sorry for the review delay, was busy on something else. I've decided to not merge it because the technical solution is not ideal. There's a much cleaner solution: create a first-class SVGR plugin, implemented in #10677. When SVGR is passed I've used your dogfood page/svg to ensure that it works and we are able to resolve the conflicts on our own site. |
|
Yeah, no problem! I agree your solution is much better. |
|
Thanks! BTW I created a dedicated issue, if you want to help us improve our default SVGO config, let's discuss it here: #10679 |
Note: This is a draft! It does work, and all tests are passing, but I'm not very familiar with the repository and wary that I haven't handled loading files and applying them to the webpack configuration correctly. (Or if you're even ok with that approach!)
This is mostly intended to be a starting point, any feedback or mentorship would be appreciated! Once we're happy with the implementation and interface, I can introduce new tests and documentation.
Pre-flight checklist
Motivation
There have been discussions about introducing an easier way for users to configure SVGO. This is an attempt to expose it similarly to how SVGO itself and SVGR does.
svgo.config.js(or.mjs/.cjs) file.svgo.config.jsfile, though… based on the docs I don't know how. 😓This PR makes it so if a
svgo.config.jsfile is present in the site directory, it loads it instead of using what Docusaurus defines. If it is not present, Docusaurus uses a default config which is the same as before.Changes
loadFreshModuleis no longer async as it never called await internally anyway, this allowed me to use it ingetFileLoaderUtilswithout much fuss.svgo.config.jsto the generated filesgetFileLoaderUtils, readssvgo.config.jsfrom generated files and passes that config to SVGO.Test Plan
Test links
Before
This is how the dogfooding page looked originally, and still looks when no
svgo.config.jsfile is present. Docusaurus defines a default config if one isn't defined otherwise.After
I now created a
svgo.config.jsfile with the following content:website/svgo.config.jsThis is how the dogfooding page looks with the config applied. We load the config from the generated files, which is written to while building:
Deploy preview: https://deploy-preview-10211--docusaurus-2.netlify.app/tests/docs/tests/svgs/
Related issues/PRs
Edit: I also just noticed #9192. No promises, but I'll give it a peek and see if this is something I can handle in the near future.