В данный момент я возвращаюсь в Шэньчжэнь и думаю о том, чтобы написать что-нибудь, чем недавно пользовался. Если в вашем проекте также используется система релизов или инструмент CI, и проект относительно большой, а релиз часто занимает десять минут, то вам могут подойти следующие инструменты.
Построить
Есть два аспекта, которые влияют на скорость публикации переднего плана: создание и сжатие.Оптимизация этих двух вещей может значительно сократить время публикации.
thread-loader
thread-loaderбудет ли вашloader
Помещается в рабочий пул для запуска, чтобы обеспечить многопоточное построение.
Если этот загрузчик размещен перед другими загрузчиками, загрузчики, размещенные после этого загрузчика, будут работать в отдельном пуле рабочих процессов.
Install
$ npm install --save-dev thread-loader
использование и пример
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
include: path.resolve("src"),
use: [
"thread-loader",
// your expensive loader (e.g babel-loader)
]
}
]
}
Для получения дополнительных конфигураций см.:GitHub.com/Webpack-con…
happypack
happypack, с помощью модели с несколькими процессами, чтобы ускорить создание кода. Судя по количеству запусков на github, happypack используется большим количеством людей и более популярен.
принцип
Соответствующие технические принципы больше не являются громоздкими, вы можете проверить соответствующие статьи Taobao FED.Анализ принципа happypack
использование и пример
var HappyPack = require('happypack');
var happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
// ... 省略其余配置
module: {
loaders: [
{
test: /\.less$/,
loader: ExtractTextPlugin.extract(
'style',
path.resolve(__dirname, './node_modules', 'happypack/loader') + '?id=less'
)
}
]
},
plugins: [
new HappyPack({
id: 'less',
loaders: ['css!less'],
threadPool: happyThreadPool,
cache: true,
verbose: true
})
]
Резюме метода сборки
С точки зрения фактического использования thread-loader и happypack мало влияют на скорость упаковки небольших проектов из-за их собственных дополнительных накладных расходов, таких как ввод-вывод,Рекомендуется для использования только в крупных проектах, вы можете протестировать его перед запуском в производство.
компрессия
плагин webpack-parallel-uglify устарел
Проект в основном в стадии no support, никто не занимается вопросом, никто не сливает пр.
рекомендуется использовать terser-webpack-plugin
terser-webpack-pluginэто использованиеterserПлагин webpack для сжатия js.
Минификация — один из самых трудоемких шагов в предрелизной обработке.Если вы используете webpack 4, всего несколько строк кода могут ускорить вашу сборку и выпуск.
использование и пример
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
optimization: {
minimizer: [new TerserPlugin(
parallel: true // 多线程
)],
},
};
См. ссылку выше для большего использования.
Суммировать
С оптимизацией веб-пакета 4 скорость создания действительно значительно улучшилась, и она также была вдохновлена инструментами упаковки веб-приложений с нулевой конфигурацией, такими как посылки, На самом деле, конфигурация веб-пакета становится все более и более лаконичной, почему бы и нет. попробуй настроить?