Сегодня я погрузился во внутреннее устройство Webpack, и мне удалось использовать множество его полезных функций (через загрузчики Webpack), такие как модули CSS и транспилятор Babel. Я хочу использовать это для создания приложения React (без create-react-app).
Вот мой файл конфигурации:
const HtmlWebPackPlugin = require("html-webpack-plugin");
const path = require('path');
module.exports = {
entry: {
main: './src/index.js',
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js'
},
module: {
rules: [
{
test: /\.js|jsx$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.html$/,
exclude: /node_modules/,
use: [
{
loader: "html-loader",
options: { minimize: true }
}
]
},
{
test: /\.css$/,
exclude: /node_modules/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}
]
}
]
},
plugins: [
new HtmlWebPackPlugin({
template: "./src/index.html",
filename: "index.html"
})
]
};
Поскольку теперь у меня есть одна точка входа, весь пакет конвертируется в один файл JS. Однако по мере роста моего приложения для реагирования, вероятно, будет лучше разделить пакет на несколько частей, чтобы их можно было загружать быстрее (это правильная терминология, верно?).
Я не уверен, что вам нужно разбивать пакет на несколько частей. Но я видел это в других местах. Например, приложение Angular - это один файл HTML с несколькими пакетами.
Да, иметь несколько пакетов - обычное дело. Но почему вы хотите это сделать? Ваше приложение загружается очень медленно? Если вам действительно нужно или вы хотите, ИМО, лучший способ сделать это - иметь пакет для каждого корня.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам не нужно иметь несколько точек входа.
Вы можете блокировать на основе
Если вы не уверены, какие параметры использовать, используйте значения по умолчанию с плагином splitchunk webpack (https://webpack.js.org/plugins/split-chunks-plugin/).
Затем вы можете опробовать свои собственные настройки, чтобы выяснить, что лучше всего подходит для вашего приложения.
Привет, @WillemvanderVeen! вы уверены, что вам нужно разделить пакет на несколько частей? Потому что в большинстве случаев в этом нет необходимости. Я думаю, что первый вопрос, на который вам нужно ответить, - это
Do I really need to split my bundle?. Если вам действительно нужно разделить пакет, вы можете создать пакет для каждого корня :)