моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Друзья-фронтендеры, сегодня мы поговорим о Webpack, который люди любят и ненавидят. Да, это инструмент для сборки, настроенный так, что вам захочется разбить клавиатуру, но вы не можете жить без него. Не волнуйтесь, следуйте за мной, и я гарантирую, что вы превратитесь из новичка в Webpack в мастера настройки!
Проще говоря, Webpack — это статический инструмент упаковки модулей для современных приложений JavaScript. Когда Webpack обрабатывает приложение, он внутри себя создает граф зависимостей, который отображает каждый модуль, необходимый проекту, и генерирует один или несколько пакетов.
Звучит высокопарно? Фактически, это организация и упаковка ваших беспорядочных файлов кода в файлы, которые браузер может понять и запустить. Это как очень трудолюбивая уборщица, которая содержит в порядке всю одежду, книги и игрушки в вашем доме.
Сначала давайте взглянем на базовую конфигурацию Webpack.Создаватьwebpack.config.js
Файл, это наша база конфигурации:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
};
здесь,entry
указывает точку входа приложения,output
Сообщает Webpack, куда выводить создаваемые им пакеты и как называть эти файлы.
Сам Webpack понимает только файлы JavaScript и JSON. Загрузчики позволяют Webpack обрабатывать файлы других типов и преобразовывать их в допустимые модули для использования приложениями.
module.exports = {
// ...
module: {
rules: [
{
test: /.css$/,
use: ['style-loader', 'css-loader'],
},
{
test: /.(png|svg|jpg|gif)$/,
use: ['file-loader'],
},
],
},
};
вы видели? Мы говорим Webpack: «Эй, братан, используй style-loader и css-loader для обработки файлов .css и используй file-loader для обработки изображений». Это так просто!
Плагины — это основа Webpack. Их можно использовать для решения самых разных задач: от оптимизации упаковки и сжатия до переопределения переменных в среде.
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
// ...
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: '我的超酷网页',
}),
],
};
Здесь мы используем CleanWebpackPlugin для очистки /dist
папку и HtmlWebpackPlugin для создания HTML-файла. Это как установить для Webpack двух правых помощников, один отвечает за уборку, а другой — за украшение комнаты.
Вебпак предоставляет mode
Параметры конфигурации, которые сообщают Webpack использовать встроенные оптимизации для соответствующего режима:
module.exports = {
mode: 'production', // 或者 'development'
// ...
};
Если установлено значение «производство», Webpack автоматически включит несколько плагинов оптимизации, таких как сжатие кода JS. Режим «разработки» ориентирован на быструю сборку и отличный опыт разработки. Это все равно, что надеть две шляпы для Webpack: одну — рабочую, а другую — отпускную.
Используйте webpack-dev-server для создания простого веб-сервера, который можно перезагружать в режиме реального времени:
module.exports = {
// ...
devServer: {
contentBase: './dist',
hot: true,
},
};
Если после этой конфигурации вы измените код, браузер автоматически обновится. Это все равно, что включить турбокомпрессор в процесс разработки!
Разделение кода — одна из самых привлекательных функций Webpack. Это позволяет вам разделить ваш код на различные пакеты, которые затем можно загружать по требованию или параллельно.
module.exports = {
// ...
optimization: {
splitChunks: {
chunks: 'all',
},
},
};
Эта конфигурация говорит Webpack: «Эй, помогите мне извлечь общий код и упаковать его отдельно». Это позволит избежать повторной загрузки модулей и уменьшить размер основного пакета. Это все равно, что снова собрать чемодан и положить часто используемые предметы туда, где они наиболее легко доступны.
Tree Shaking — это термин, обычно используемый для описания удаления неиспользуемого кода в контексте JavaScript.
module.exports = {
mode: 'production',
optimization: {
usedExports: true,
},
};
Эта конфигурация автоматически включит Tree Shaking в производственном режиме. Он проанализирует ваш код, чтобы выяснить, какой код не используется, а затем «обрежет» эти бесполезные коды, как садовник обрезает деревья.
Хорошо, после всей этой возни вы должны иметь полное представление о настройке Webpack. От базовой конфигурации до расширенных функций мы рассмотрели основные функции Webpack. Помните, что Webpack подобен мощному швейцарскому армейскому ножу, и правильное его использование может значительно повысить эффективность разработки и производительность приложений.
Конечно, мир Webpack – это нечто большее. Вам предстоит изучить более продвинутые функции, такие как отложенная загрузка, предварительная загрузка, кэширование и т. д. Однако, освоив эти основы, вы уже можете с гордостью сказать: «Я еще и мастер настройки Webpack!»
Наконец, не забывайте часто проверять официальную документацию Webpack. Потому что в быстро меняющемся мире фронтенда то, что было лучшим вчера, сегодня может устареть. Продолжайте учиться и исследовать, и вы сможете идти все дальше и дальше по пути к интерфейсной разработке.
Теперь возьмите клавиатуру и начните настройку Webpack! Помните, каждая ошибка — это ступенька на пути к тому, чтобы стать мастером. Давай, бей рабочих!
Он включает в себя новейший обмен опытом собеседований, анализ реальных вопросов на собеседовании, полный набор вопросов из более чем 2000, а также подробные объяснения технических руководств по предварительному и внутреннему собеседованию, независимо от того, проводите ли вы собеседование для набора в школу, социального набора или хотите; чтобы улучшить свои навыки программирования, вы можете отнестись к этому спокойно~
из брусчатки. Давай, бей рабочих!
Он включает в себя новейший обмен опытом собеседований, анализ реальных вопросов на собеседовании, полный набор вопросов из более чем 2000, а также подробные объяснения технических руководств по предварительному и внутреннему собеседованию, независимо от того, проводите ли вы собеседование для набора в школу, социального набора или хотите; чтобы улучшить свои навыки программирования, вы можете отнестись к этому спокойно~
[Изображения по внешней ссылке передаются...(img-LBHUGtbe-1720689041341)]