Updating documentation

This commit is contained in:
2020-05-29 03:56:23 +01:00
parent 5a75eb3960
commit fb9f4e9a21
4 changed files with 57 additions and 6 deletions

BIN
blog/themes/.DS_Store vendored

Binary file not shown.

View File

@@ -1,11 +1,11 @@
App.js: App.js:
Document using the `/* webpackChunkname: "name" */ Document using the `/* webpackChunkname: "name" */ @done (5/29/2020, 12:34:27 AM)
What does `const { default: App }` do? What does `const { default: App }` do? @done (5/29/2020, 12:34:29 AM)
Plugins: Plugins:
Add `purgecss-webpack-plugin`: <https://pusher.com/tutorials/webpack-part-7>. Add `purgecss-webpack-plugin`: <https://pusher.com/tutorials/webpack-part-7>. @done (5/29/2020, 12:46:26 AM)
Notes: Notes:
Do this after the html templates have been added - this will only import the css classes that have been used. Do this after the html templates have been added - this will only import the css classes that have been used.
Layout: Layout:
Make sure the contents of app.js and main.js are documented. Specifically the content of main.js so it imports the app.js. Make sure the contents of app.js and main.js are documented. Specifically the content of main.js so it imports the app.js. @done (5/29/2020, 12:46:35 AM)

View File

@@ -10,6 +10,12 @@ You can bundle anything up, we can even write `scss` and have webpack lint, comp
## Structure ## Structure
Overview:
- When adding a new `scss` library add it to the `styles.scss` file using `@import`.
- When adding a new `js` library add it to the `main.js` library using `import`.
- You can split out your imports into subfiles, remember to import that file into the two files above.
### Folder structure ### Folder structure
The structure can depend on the project. If you are using webpack you can create `./src` folder where you can place `./src/js` or `./src/scss` for example. We can have a `./node_modules` folder then use webpack to compile. The structure can depend on the project. If you are using webpack you can create `./src` folder where you can place `./src/js` or `./src/scss` for example. We can have a `./node_modules` folder then use webpack to compile.

View File

@@ -225,3 +225,48 @@ We need to add the `webpack.HashedModuleIdsPlugin` to the plugins since we are u
new webpack.HashedModuleIdsPlugin(), new webpack.HashedModuleIdsPlugin(),
], ],
``` ```
Webpack will automatically minimise all js files by default in production mode using Terser. For more control over this we should add, import and configure it in the minimizer object.
| Plugin | Command | Description |
| ----------------------- | -------------------------------- | --------------------------- |
| `terser-webpack-plugin` | `yarn add terser-webpack-plugin` | Minimizes javascript files. |
Import the module in the `webpack.prod.js`, then add the minimizer options to the `optimization` object:
```javascript
optimization: {
minimize: true,
minimizer: [new TerserPlugin({ extractComments: false })],
},
```
Add a css minmizer:
| Plugin | Command | Description |
| ------------------------------------ | --------------------------------------------- | ------------------- |
| `optimize-css-assets-webpack-plugin` | `yarn add optimize-css-assets-webpack-plugin` | Minmizes css files. |
Finally we should add the Purge CSS plugin:
| Plugin | Command | Description |
| ------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `purgecss-webpack-plugin` | `yarn add purgecss-webpack-plugin` | Scans a directory for files, and will only include css classes that it finds referenced. This can greatly reduce the size of your stylesheets. |
We should import it:
```javascript
const PurgeCssPlugin = require("purgecss-webpack-plugin");
const glob = require("glob");
const path = require("path");
```
And add it to the `plugins` object:
```javascript
new PurgeCssPlugin({
paths: glob.sync(path.join(__dirname, "layouts") + "/**/*.html", {
nodir: true,
}),
}),
```