| @ -0,0 +1 @@ | |||||||
|  | /node_modules | ||||||
| @ -1,41 +0,0 @@ | |||||||
| <!DOCTYPE html> |  | ||||||
| <html> |  | ||||||
| <head> |  | ||||||
| 	<meta charset="utf-8"> |  | ||||||
| 	<title>FumoCraft</title> |  | ||||||
| 	<link rel="stylesheet" href="style.css"> |  | ||||||
| </head> |  | ||||||
| 
 |  | ||||||
| <body translate="no"> |  | ||||||
| 	<div id="header"> |  | ||||||
| 	 <div class="logo1"> |  | ||||||
| 	   <img src="p/logo1.png" width="702" height="84" /> |  | ||||||
| 	 </div> |  | ||||||
| 	</div> |  | ||||||
| <!--//- Menu--> |  | ||||||
| 	<div class="mc-menu"> |  | ||||||
| 		<div class="mc-button full"> |  | ||||||
| 			<div class="title">Singleplayer</div> |  | ||||||
| 		</div> |  | ||||||
| 		<div class="mc-button full"> |  | ||||||
| 			<div class="title">Multiplayer</div> |  | ||||||
| 		</div> |  | ||||||
| 		<div class="mc-button full"> |  | ||||||
| 			<div class="title">Minecraft Realms</div> |  | ||||||
| 		</div> |  | ||||||
| 		<div class="double"> |  | ||||||
| 			<div class="mc-button full"> |  | ||||||
| 				<div class="title">Options</div> |  | ||||||
| 			</div> |  | ||||||
| 			<div class="mc-button full"> |  | ||||||
| 				<div class="title">Quit Game</div> |  | ||||||
| 			</div> |  | ||||||
| 		</div> |  | ||||||
| 		<div class="mc-button full lang"> |  | ||||||
| 			<a href="https://craft.cirnovarenie.com/map/"> |  | ||||||
| 			<div class="title"><img src="p/lang.png" alt=" Lang"></div> |  | ||||||
| 			<!--	<div class="title"><img src="https://i.ibb.co/99187Lk/lang.png" alt=" Lang"></div> --> |  | ||||||
| 			</a> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </body> |  | ||||||
| @ -0,0 +1,349 @@ | |||||||
|  | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ | ||||||
|  | 
 | ||||||
|  | /* Document | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the line height in all browsers. | ||||||
|  |  * 2. Prevent adjustments of font size after orientation changes in iOS. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | html { | ||||||
|  |     line-height: 1.15; /* 1 */ | ||||||
|  |     -webkit-text-size-adjust: 100%; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Sections | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the margin in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | body { | ||||||
|  |     margin: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Render the `main` element consistently in IE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | main { | ||||||
|  |     display: block; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Correct the font size and margin on `h1` elements within `section` and | ||||||
|  |  * `article` contexts in Chrome, Firefox, and Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | h1 { | ||||||
|  |     font-size: 2em; | ||||||
|  |     margin: 0.67em 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Grouping content | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Add the correct box sizing in Firefox. | ||||||
|  |  * 2. Show the overflow in Edge and IE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | hr { | ||||||
|  |     box-sizing: content-box; /* 1 */ | ||||||
|  |     height: 0; /* 1 */ | ||||||
|  |     overflow: visible; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inheritance and scaling of font size in all browsers. | ||||||
|  |  * 2. Correct the odd `em` font sizing in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | pre { | ||||||
|  |     font-family: monospace, monospace; /* 1 */ | ||||||
|  |     font-size: 1em; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Text-level semantics | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the gray background on active links in IE 10. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  |     background-color: transparent; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Remove the bottom border in Chrome 57- | ||||||
|  |  * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | abbr[title] { | ||||||
|  |     border-bottom: none; /* 1 */ | ||||||
|  |     text-decoration: underline; /* 2 */ | ||||||
|  |     text-decoration: underline dotted; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Add the correct font weight in Chrome, Edge, and Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | b, | ||||||
|  | strong { | ||||||
|  |     font-weight: bolder; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inheritance and scaling of font size in all browsers. | ||||||
|  |  * 2. Correct the odd `em` font sizing in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | code, | ||||||
|  | kbd, | ||||||
|  | samp { | ||||||
|  |     font-family: monospace, monospace; /* 1 */ | ||||||
|  |     font-size: 1em; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Add the correct font size in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | small { | ||||||
|  |     font-size: 80%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Prevent `sub` and `sup` elements from affecting the line height in | ||||||
|  |  * all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | sub, | ||||||
|  | sup { | ||||||
|  |     font-size: 75%; | ||||||
|  |     line-height: 0; | ||||||
|  |     position: relative; | ||||||
|  |     vertical-align: baseline; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | sub { | ||||||
|  |     bottom: -0.25em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | sup { | ||||||
|  |     top: -0.5em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Embedded content | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the border on img inside links in IE 10. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | img { | ||||||
|  |     border-style: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Forms | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Change the font styles in all browsers. | ||||||
|  |  * 2. Remove the margin in Firefox and Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button, | ||||||
|  | input, | ||||||
|  | optgroup, | ||||||
|  | select, | ||||||
|  | textarea { | ||||||
|  |     font-family: inherit; /* 1 */ | ||||||
|  |     font-size: 100%; /* 1 */ | ||||||
|  |     line-height: 1.15; /* 1 */ | ||||||
|  |     margin: 0; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Show the overflow in IE. | ||||||
|  |  * 1. Show the overflow in Edge. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button, | ||||||
|  | input { /* 1 */ | ||||||
|  |     overflow: visible; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the inheritance of text transform in Edge, Firefox, and IE. | ||||||
|  |  * 1. Remove the inheritance of text transform in Firefox. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button, | ||||||
|  | select { /* 1 */ | ||||||
|  |     text-transform: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Correct the inability to style clickable types in iOS and Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button, | ||||||
|  | [type="button"], | ||||||
|  | [type="reset"], | ||||||
|  | [type="submit"] { | ||||||
|  |     -webkit-appearance: button; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the inner border and padding in Firefox. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button::-moz-focus-inner, | ||||||
|  | [type="button"]::-moz-focus-inner, | ||||||
|  | [type="reset"]::-moz-focus-inner, | ||||||
|  | [type="submit"]::-moz-focus-inner { | ||||||
|  |     border-style: none; | ||||||
|  |     padding: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Restore the focus styles unset by the previous rule. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | button:-moz-focusring, | ||||||
|  | [type="button"]:-moz-focusring, | ||||||
|  | [type="reset"]:-moz-focusring, | ||||||
|  | [type="submit"]:-moz-focusring { | ||||||
|  |     outline: 1px dotted ButtonText; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Correct the padding in Firefox. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | fieldset { | ||||||
|  |     padding: 0.35em 0.75em 0.625em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the text wrapping in Edge and IE. | ||||||
|  |  * 2. Correct the color inheritance from `fieldset` elements in IE. | ||||||
|  |  * 3. Remove the padding so developers are not caught out when they zero out | ||||||
|  |  *    `fieldset` elements in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | legend { | ||||||
|  |     box-sizing: border-box; /* 1 */ | ||||||
|  |     color: inherit; /* 2 */ | ||||||
|  |     display: table; /* 1 */ | ||||||
|  |     max-width: 100%; /* 1 */ | ||||||
|  |     padding: 0; /* 3 */ | ||||||
|  |     white-space: normal; /* 1 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Add the correct vertical alignment in Chrome, Firefox, and Opera. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | progress { | ||||||
|  |     vertical-align: baseline; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the default vertical scrollbar in IE 10+. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | textarea { | ||||||
|  |     overflow: auto; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Add the correct box sizing in IE 10. | ||||||
|  |  * 2. Remove the padding in IE 10. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | [type="checkbox"], | ||||||
|  | [type="radio"] { | ||||||
|  |     box-sizing: border-box; /* 1 */ | ||||||
|  |     padding: 0; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Correct the cursor style of increment and decrement buttons in Chrome. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | [type="number"]::-webkit-inner-spin-button, | ||||||
|  | [type="number"]::-webkit-outer-spin-button { | ||||||
|  |     height: auto; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the odd appearance in Chrome and Safari. | ||||||
|  |  * 2. Correct the outline style in Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | [type="search"] { | ||||||
|  |     -webkit-appearance: textfield; /* 1 */ | ||||||
|  |     outline-offset: -2px; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Remove the inner padding in Chrome and Safari on macOS. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | [type="search"]::-webkit-search-decoration { | ||||||
|  |     -webkit-appearance: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inability to style clickable types in iOS and Safari. | ||||||
|  |  * 2. Change font properties to `inherit` in Safari. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | ::-webkit-file-upload-button { | ||||||
|  |     -webkit-appearance: button; /* 1 */ | ||||||
|  |     font: inherit; /* 2 */ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Interactive | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  |  * Add the correct display in Edge, IE 10+, and Firefox. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | details { | ||||||
|  |     display: block; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  |  * Add the correct display in all browsers. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | summary { | ||||||
|  |     display: list-item; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Misc | ||||||
|  |    ========================================================================== */ | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Add the correct display in IE 10+. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | template { | ||||||
|  |     display: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Add the correct display in IE 10. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | [hidden] { | ||||||
|  |     display: none; | ||||||
|  | } | ||||||
| @ -0,0 +1 @@ | |||||||
|  | @import url(normalize.css); | ||||||
| Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB | 
| Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB | 
| Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 321 B | 
| Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB | 
| After Width: | Height: | Size: 1.7 KiB | 
| @ -0,0 +1,59 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <title>FumoCraft</title> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | ||||||
|  | </head> | ||||||
|  | 
 | ||||||
|  | <body translate="no"> | ||||||
|  | <div class="page"> | ||||||
|  |     <header class="header" id="header"> | ||||||
|  |         <div class="logo"> | ||||||
|  |             <img class="logo__img" src="img/logo.png"/> | ||||||
|  |         </div> | ||||||
|  |     </header> | ||||||
|  |     <nav class="menu"> | ||||||
|  |         <a class="button full"> | ||||||
|  |             <button id="menuSinglePlayer" datatype="popupSinglePlayer" class="title">Singleplayer</button> | ||||||
|  |         </a> | ||||||
|  |         <a class="button full"> | ||||||
|  |             <button class="title">Multiplayer</button> | ||||||
|  |         </a> | ||||||
|  |         <a class="button full"> | ||||||
|  |             <button class="title">Minecraft Realms</button> | ||||||
|  |         </a> | ||||||
|  |         <div class="menu__wrapper"> | ||||||
|  |             <a class="button full lang" href="https://craft.cirnovarenie.com/map/"> | ||||||
|  |                 <div class=" title"><img src="img/lang.png" alt=" Lang"></div> | ||||||
|  |             </a> | ||||||
|  |             <a class="button full"> | ||||||
|  |                 <button class="title">Options</button> | ||||||
|  |             </a> | ||||||
|  |             <a class="button full"> | ||||||
|  |                 <button class="title">Quit Game</button> | ||||||
|  |             </a> | ||||||
|  |         </div> | ||||||
|  |     </nav> | ||||||
|  |     <div class="overlay hidden"> | ||||||
|  |             <div class="popup hidden" id="popupSinglePlayer"> | ||||||
|  |                 <div class="popup-inner"> | ||||||
|  |                     <div class="popup__content"> | ||||||
|  |                         <div class="popup__background_dirt"></div> | ||||||
|  |                         <div class = "popup__text">singleplayersingleplayersingleplay ersingleplayers ingleplayersingleplayersingleplayersing leplayersingleplayersi ngleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersin gleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayer</div> | ||||||
|  |                     </div> | ||||||
|  |                 </div> | ||||||
|  |                 <button class="popup__close"></button> | ||||||
|  |             </div> | ||||||
|  |         <!--    <div class="popup" id="multiplayer">--> | ||||||
|  |         <!--        multiplayer--> | ||||||
|  |         <!--    </div>--> | ||||||
|  |         <!--    <div class="popup" id="realms">--> | ||||||
|  |         <!--        realms--> | ||||||
|  |         <!--    </div>--> | ||||||
|  |         <!--    <div class="popup" id="options">--> | ||||||
|  |         <!--        options--> | ||||||
|  |         <!--    </div>--> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
|  | </body> | ||||||
| @ -0,0 +1,55 @@ | |||||||
|  | import './style.css'; | ||||||
|  | import './blocks/normalize.css'; | ||||||
|  | 
 | ||||||
|  | const closePopupButtonSelector = '.popup__close'; | ||||||
|  | const overlayPopupSelector = '.overlay'; | ||||||
|  | 
 | ||||||
|  | const popupIDs = { | ||||||
|  |   singleplayer: '#popupSinglePlayer', | ||||||
|  |   multiplayer: '#multiplayer', | ||||||
|  |   realms: '#realms', | ||||||
|  |   options: '#options' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const buttonsIDs = { | ||||||
|  |   singleplayer: '#menuSinglePlayer', | ||||||
|  |   multiplayer: '#multiplayer', | ||||||
|  |   realms: '#realms', | ||||||
|  |   options: '#options' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | document.addEventListener("DOMContentLoaded", () => { | ||||||
|  |   setCloseClickListiner(popupIDs, clickCloseHandler) | ||||||
|  |   setClickListiner(buttonsIDs, clickShowHandler) | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | function setClickListiner(ids, func) { | ||||||
|  |   for (const id in ids) { | ||||||
|  |     document.querySelector(ids[id])?.addEventListener('click', func) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function setCloseClickListiner(ids, func) { | ||||||
|  |   for (const id in ids) { | ||||||
|  |     document.querySelector(`${ids[id]} ${closePopupButtonSelector}`)?.addEventListener('click', func) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function clickCloseHandler(event) { | ||||||
|  |   const {target} = event | ||||||
|  |   const popupContainer = target.parentElement | ||||||
|  |   const overlay = document.querySelector(overlayPopupSelector) | ||||||
|  | 
 | ||||||
|  |   popupContainer.classList.toggle('hidden') | ||||||
|  |   overlay.classList.toggle('hidden') | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function clickShowHandler(event) { | ||||||
|  |   const {target} = event | ||||||
|  |   const popupId = target.attributes.datatype.value | ||||||
|  |   const popupContainer = document.querySelector(`#${popupId}`) | ||||||
|  |   const overlay = document.querySelector(overlayPopupSelector) | ||||||
|  | 
 | ||||||
|  |   popupContainer.classList.toggle('hidden') | ||||||
|  |   overlay.classList.toggle('hidden') | ||||||
|  | } | ||||||
| @ -0,0 +1,50 @@ | |||||||
|  | const path = require('path') | ||||||
|  | const HtmlWebpackPlugin = require('html-webpack-plugin') // Импортируем плагин
 | ||||||
|  | const MiniCssExtractPlugin = require('mini-css-extract-plugin') | ||||||
|  | const {CleanWebpackPlugin} = require('clean-webpack-plugin') | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |   mode: 'development', // Режим сборки ('development' или 'production')
 | ||||||
|  |   entry: './src/index.js', // Точка входа (исходный файл)
 | ||||||
|  |   output: { | ||||||
|  |     path: path.resolve(__dirname, 'dist'), // Папка для собранных файлов
 | ||||||
|  |     filename: 'bundle.js', // Имя собранного файла,
 | ||||||
|  |     clean: true | ||||||
|  |   }, | ||||||
|  |   devServer: { | ||||||
|  |     compress: true, | ||||||
|  |     port: 8081, | ||||||
|  |     open: true | ||||||
|  |   }, | ||||||
|  |   module: { | ||||||
|  |     rules: [ | ||||||
|  |       { | ||||||
|  |         // регулярное выражение, которое ищет все файлы с такими расширениями
 | ||||||
|  |         test: /\.(png|svg|jpg|gif|woff(2)?|eot|ttf|otf)$/, | ||||||
|  |         type: 'asset/resource' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         // применять это правило только к CSS-файлам
 | ||||||
|  |         test: /\.css$/, | ||||||
|  |         // при обработке этих файлов нужно использовать
 | ||||||
|  |         // MiniCssExtractPlugin.loader и css-loader
 | ||||||
|  |         use: [MiniCssExtractPlugin.loader, { | ||||||
|  |           loader: 'css-loader' | ||||||
|  |         }] | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         test: /\.html$/, | ||||||
|  |         loader: 'html-loader' | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   plugins: [ | ||||||
|  |     new HtmlWebpackPlugin({ | ||||||
|  |       template: './src/index.html' // Путь к шаблону HTML
 | ||||||
|  |     }), | ||||||
|  |     new MiniCssExtractPlugin({ | ||||||
|  |       filename: '[name].css' // Настройка имени выходного файла CSS
 | ||||||
|  |     }), | ||||||
|  |     new CleanWebpackPlugin() | ||||||
|  |   ] | ||||||
|  | } | ||||||