Для начала склонируйте к себе репозиторий https://github.com/alex-karo/webpack-static-template
(git clone https://github.com/alex-karo/webpack-static-template
).
В репозитории уже настроены:
- webpack
- autoprefixer
- scss-loader
Автопрефиксер - это утилита, которая сама расставляет вендорные префиксы к css-свойствам.
Раньше вы писали свой html в файле index.html
, а css - в файле style.css
, который подключали на страницу с помощью link.
Сейчас все происходит абсолютно также, только подключением на страницу стилей занимается webpack. Вы указываете ему точку входа, он проходит по всем импортам из этой точки, собирает все в один файл, и подключает его на страницу.
То же самое происходит с js-файлами. Webpack берет файл, являющийся точкой входа, проходит по всем импортам, и собирает все в один файл.
Точка входа для scss: src/scss/style.css
.
Чтобы добавить какой-то файл в сборку, напишите в src/scss/style.css
:
@import './path/to/filename.scss';
P.S: Если в файле, который уже импортирован в src/scss/style.css
написать другой @import
, то webpack заберет и его.
Разделяйте на основе БЭМ-блоков: один файл - один блок.
Точка входа для js: src/js/index.js
.
Чтобы добавить какой-то файл в сборку, напишите в src/js/index.js
.
import fileName from './path/to/filename';
В другом файле(который вы импортируете нужно экспортировать функции/переменные/...
export const myVariable = 'Block 7';
P.S: Если в файле, который уже импортирован в src/js/index.js
написать другой import
, то webpack заберет и его.
Картинки нужно добавлять в папку src/img
, а в html подключать как ./img/...
.
После сборки webpack кладет все файлы в папку dist
.
Чтобы посмотреть ваш проект откройте файл dist/index.html
в браузере.
Вы также можете посмотреть собранные js-файлы в папке dist/js
и css-файлы в папке /dist/css'
.
Потому что мы указали это здесь.
Можете поменять точку входа и переименовать/поменять файлы и посмотреть что произойдет.
Потому что мы импортировали этот файл в нашу js-точку входа.
Мы указываем это в конфиге.
Кстати, с картинками и шрифтами происходит то же самое.
Нет, мы уже сделали это за вас.