Настройка webpack + babel (yarn / npm)
1. Необходимо установить node.js
2. Необходимо установить yarn
Генерируем файл package.json
Автоматическая генерация файла
//yarn yarn init -y //node.js npm init -y
Ручная генерация с вводом параметров
//yarn команда yarn init //npm команда npm init
Установка и настройка webpack
Локальная установка webpack
//С помощью npm npm i webpack webpack-cli --save-dev //С помощью yarn yarn add webpack webpack-cli -D
После добавляем в файл package.json строки
"scripts": { "build": "webpack", "dev": "webpack --mode development" },
Примерный вид того, что должно получиться (при использование yarn)
{ "name": "< Название вашего проекта >", "version": "1.0.0", "main": "index.js", "license": "MIT", "scripts": { "build": "webpack", "dev": "webpack --mode development" }, }
Установим необходимые плагины для webpack
Устанавливаем через командную строку
Команды для yarn
//file-loader обработчик файлов yarn add -D file-loader //babel это js компилятор, который позволяет перегонять новый синтаксис js в старый yarn add -D babel-loader @babel/core @babel/preset-env //html-webpack-plugin необходим для сборки html страниц yarn add --dev html-webpack-plugin //extract-text-webpack-plugin необходим для работы с css стилями yarn add -D extract-text-webpack-plugin@4.0.0-beta.0 //copy-webpack-plugin копирует отдельные файлы или целые каталоги в каталог сборки yarn add -D copy-webpack-plugin //clean-webpack-plugin очищает папку сборки после генерации yarn add -D clean-webpack-plugin //style-loader yarn add -D style-loader //css-loader yarn add -D css-loader //sass-loader yarn add -D sass-loader //autoprefixer yarn add -D autoprefixer
Команды для node.js
//file-loader обработчик файлов npm i file-loader --save-dev //babel это js компилятор, который позволяет перегонять новый синтаксис js в старый npm i babel/core @babel/preset-env babel-loader --save-dev //html-webpack-plugin необходим для сборки html страниц npm i html-webpack-plugin --save-dev //extract-text-webpack-plugin необходим для работы с css стилями npm i extract-text-webpack-plugin@4.0.0-beta.0 --save-dev //copy-webpack-plugin копирует отдельные файлы или целые каталоги в каталог сборки npm i copy-webpack-plugin --save-dev //clean-webpack-plugin очищает папку сборки после генерации npm i clean-webpack-plugin --save-dev //style-loader npm i style-loader --save-dev //css-loader npm i css-loader --save-dev //sass-loader npm i sass-loader --save-dev //autoprefixer npm i autoprefixer --save-dev
Настройка конфига webpack
Необходимо создать файл webpack.config.js в корневой директории вашего проекта.
//объявляем переменные const path = require('path'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); //формируем настройки module.exports = { entry: { main: './src/index.js' }, output: { path: path.resolve(__dirname, 'dist'), filename: 'js/[name].js' }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: "babel-loader" } }, { test: /\.scss$/, use: ExtractTextPlugin.extract( { fallback: 'style-loader', use: ['css-loader', 'sass-loader'] }) }, //img loader { test: /\.(svg|png|jpe?g|)$/i, use: { loader: "file-loader", options: { name: '../img/[name].[ext]', }, }, }, ], }, plugins: [ new CleanWebpackPlugin(), new ExtractTextPlugin( {filename: 'css/style.css', disable: false, allChunks: true} ), new CopyPlugin([ { from: 'src/img', to: 'img' }, ]), new HtmlWebpackPlugin({ inject: false, hash: true, template: './src/index.html', filename: 'index.html' }), ] };
Структура проекта
Структура сборщика проекта должна получится следующей
-Корневой каталог проекта
Недостающие файлы и папки необходимо создать
Запуск и тестирование сборщика проекта
Добавим код в src/index.html
<html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="css/style.css"> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> <script src="css/main.js"></script> </body>
В src/index.js добавим
import "./scss/main.scss";
Для сборки проекта в консоли прописываем
//для yarn yarn build //для npm npm build
После выполненной команды в корневой директории появится папка dist со собранным проектом
Добавить комментарий