Install dependencies and launch webpack process:
npm install
npm start
Finally, launch your editor of choice and edit index.js, index.scss, and index.html.
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
| <title>Document</title> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css" integrity="sha256-gvEnj2axkqIj4wbYhPjbWV7zttgpzBVEgHub9AAZQD4=" crossorigin="anonymous" /> | |
| </head> | |
| <body> | |
| <!-- TODO: add markup --> | |
| </body> | |
| </html> | 
| import "./index.scss"; | |
| // TODO: add behaviour | 
| // TODO: add styles | 
| { | |
| "name": "content", | |
| "version": "1.0.0", | |
| "description": "", | |
| "main": "index.js", | |
| "scripts": { | |
| "test": "echo \"Error: no test specified\" && exit 1", | |
| "start": "webpack-dev-server --mode=development", | |
| "build": "webpack -p" | |
| }, | |
| "author": "", | |
| "license": "ISC", | |
| "devDependencies": { | |
| "@babel/core": "^7.8.6", | |
| "babel-loader": "^8.0.6", | |
| "css-loader": "^3.4.2", | |
| "fibers": "^4.0.2", | |
| "html-loader": "^0.5.5", | |
| "html-webpack-plugin": "^3.2.0", | |
| "mini-css-extract-plugin": "^0.9.0", | |
| "node-sass": "^4.13.1", | |
| "sass": "^1.26.2", | |
| "sass-loader": "^8.0.2", | |
| "webpack": "^4.42.0", | |
| "webpack-cli": "^3.3.11", | |
| "webpack-dev-server": "^3.10.3" | |
| } | |
| } | 
| const path = require('path'); | |
| const MiniCssExtractPlugin = require("mini-css-extract-plugin"); | |
| const HtmlWebpackPlugin = require("html-webpack-plugin"); | |
| module.exports = { | |
| entry: path.resolve(__dirname, "index.js"), | |
| output: { | |
| path: path.resolve(__dirname, "dist"), | |
| filename: "main.js" | |
| }, | |
| devServer : { | |
| hot: true, | |
| compress: false, | |
| }, | |
| module: { | |
| rules: [ | |
| { | |
| test: /\.(js|jsx)$/, | |
| use: { | |
| loader: "babel-loader", | |
| }, | |
| }, | |
| { | |
| test: /\.(sa|sc|c)ss$/, | |
| use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"], | |
| }, | |
| { test: /\.(html)$/, use: "html-loader" }, | |
| ], | |
| }, | |
| plugins: [ | |
| new MiniCssExtractPlugin(), | |
| new HtmlWebpackPlugin({ | |
| filename: `index.html`, | |
| template: `./index.html`, | |
| inject: true | |
| }) | |
| ] | |
| } |