好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

happypack

happypack 介绍

由于有大量 文件 需要解析和处理,构建是 文件 读写和计算密集型的操作,特别是当 文件 数量 变多后,webpack 构建慢的问题会显得严重。 运行在 Node.js 之上的 webpack 是单线程模型的,也就是说 webpack 需要处理的任务需要一件件挨着做,不能多个事情一起做。

happypack 是 webpack 的 一个 插件 ,目的是通过多进程模型,来加速 代码 构建 。 分解任务和管理线程的事情 HappyPack 都会帮你做好,你所需 要做 的只是接入 HappyPack。 接入 HappyPack 的相关 代码 如下:

const path = require('path');

const ExtractTextPlugin = require('extract-text-webpack-plugin');

const HappyPack = require('happypack');

module.exports = {

module: {

rules: [

{

test: /.js$/,

// 把对 .js 文件 的处理转交给 id 为 babel 的 HappyPack 实例

use: ['happypack/loader?id=babel'],

// 排除 node_modules 目录下的 文件 ,node_modules 目录下的 文件 都是采用的 ES5 语法,没必要再通过 Babel 去转换

exclude: path.resolve(__dirname,'node_modules'),

},

{

// 把对 .css 文件 的处理转交给 id 为 css 的 HappyPack 实例

test: /.css$/,

use: ExtractTextPlugin.extract({

use: ['happypack/loader?id=css'],

}),

]

},

plugins: [

new HappyPack({

// 用唯一的标识符 id 来代表当前的 HappyPack 是用来处理一类特定的 文件

id: 'babel',

// 如何处理 .js 文件 , 用法 和 Loader 配置中一样

loaders: ['babel-loader?cacheDirectory'],

// ... 其它配置项

}),

new HappyPack({

id: 'css',

// 如何处理 .css 文件 , 用法 和 Loader 配置中一样

loaders: [' css- loader'],

new ExtractTextPlugin({

filename: `[name].css`,

],

};

GitHub: https://github.com/amireh/happypack

网站描述: 提升 webpack 的构建速度

happypack官方网站

官方网站:

如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。

查看更多关于happypack的详细内容...

  阅读:35次

上一篇

下一篇

第1节:curl.js    第2节:jade    第3节:jspm-cli    第4节:angular-cli    第5节:lerna    第6节:duo.js    第7节:swc    第8节:WebJars    第9节:fetch    第10节:babel-plugin-preval    第11节:browserify    第12节:Lebab    第13节:bundle-buddy    第14节:esprima    第15节:FIS3    第16节:prerender-loader    第17节:Parcel    第18节:lit-html    第19节:Neutrino    第20节:walle    第21节:webpack    第22节:pug    第23节:bower    第24节:Snowpack    第25节:template.js    第26节:Forge    第27节:stylis.js    第28节:Liquid    第29节:npx    第30节:jss    第31节:component    第32节:faster.js    第33节:Juicer    第34节:Jiko    第35节:laytpl    第36节:CoffeeScript    第37节:ghcjs    第38节:critters    第39节:vue-loader    第40节:swig    第41节:Workerize    第42节:Bit    第43节:Acorn    第44节:hyperHTML    第45节:ESL    第46节:script.js    第47节:yarn    第48节:MobX    第49节:Vulcan    第50节:vue-cli    第51节:WeFlow    第52节:qiankun乾坤    第53节:elf    第54节:create-react-app    第55节:CNPM    第56节:codelyzer    第57节:electron-webpack    第58节:dot-dom    第59节:prerender    第60节:assemblyscript    第61节:jarvis    第62节:Rollup    第63节:webpack-dashboard    第64节:worker-plugin    第65节:webpack-encore    第66节:HEAD    第67节:poi    第68节:dawn    第69节:mustache.js    第70节:shipit    第71节:Flow    第72节:teletype    第73节:Dust.js    第74节:Athena    第75节:npm    第76节:Koala    第77节:webpackmonitor    第78节:ndm    第79节:size-plugin    第80节:seajs    第81节:prepack-webpack-plugin    第82节:webpack-simple-starter    第83节:Verdaccio    第84节:doT.js    第85节:bonsai    第86节:arttemplate    第87节:UiBot RPA    第88节:EJS    第89节:mern-starter    第90节:v8.dev    第91节:renovate    第92节:happypack    第93节:gulp    第94节:grunt    第95节:microbundle    第96节:handlebars.js    第97节:micro    第98节:tink    第99节:min-cli    第100节:Snibox    第101节:Codekit    第102节:WebAssembly    第103节:webpack-bundle-analyzer    第104节:htm    第105节:yeoman    第106节:Broccoli.js    第107节:jetpack    第108节:ied    第109节:Ender    第110节:Nunjucks    第111节:splittable    第112节:closure-compiler    第113节:react-boilerplate    第114节:SystemJS    第115节:electron-webpack-dashboard    第116节:fuse-box    第117节:jsvu    第118节:tmt-workflow    第119节:Cooking    第120节:hogan.js