在Vue中使用HappyPack
这篇文章主讲在Vue中使用HappyPack
这篇文章主要讲的的是在Vue中使用HappyPack,其中涉及到的其他webpack中的知识点,不做讲解。
介绍HappyPack
由于有大量文件需要解析和处理,构建是文件读写和计算密集型的操作,特别是当文件数量变多后,Webpack 构建慢的问题会显得严重。 运行在 Node.js 之上的 Webpack 是单线程模型的,也就是说 Webpack 需要处理的任务需要一件件挨着做,不能多个事情一起做。
文件读写和计算操作是无法避免的,那能不能让 Webpack 同一时刻处理多个任务,发挥多核 CPU 电脑的威力,以提升构建速度呢?
HappyPack 就能让 Webpack 做到这点,它把任务分解给多个子进程去并发的执行,子进程处理完后再把结果发送给主进程。
安装HappyPack
// 也可以使用 cnpm 切记下载的时候 happypack 得是小写 npm install --save-dev happypack npm i -D happypack
引入HappyPack
// 引入 Happpack 可以在 package.json 找到你下载的 const HappyPack = require('happypack'); // 安装 OS 模块 这个主要是拿到当前电脑的CPU核数 const os = require('os'); /* 这个是设置共享线程池中的数量 size 控制设置数量 类型 只能是 整数类型 */ const happyThreadPool = HappyPack.ThreadPool({
size: os.cpus().length });
使用方法
module.exports = {
context: ..., entry: {
...}, output: {
...}, resolve: {
...}, module: {
rules: [ // { // 原版 // test: /\.vue$/, // loader: 'vue-loader', // options: vueLoaderConfig, // }, {
test: /\.vue$/, loader: 'happypack/loader?id=vue', // options: vueLoaderConfig, include: [resolve('src')], exclude: /node_modules/, }, // { // 原版 // test: /\.js$/, // loader: 'babel-loaderl', // include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')], // }, {
test: /\.js$/, loader: 'happypack/loader?id=happyBabel', include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')], // include: [resolve('src')], exclude: /node_modules/, }, ], }, plugins: [ new HappyPack({
//用id来标识 happypack处理那里类文件 id: 'happyBabel', //如何处理 用法和loader 的配置一样 // cache: false, loaders: [{
loader: 'babel-loader?cacheDirectory=true', // loader: 'babel-loader', }], //共享进程池 threadPool: happyThreadPool, //允许 HappyPack 输出日志 // verbose: true, }), new HappyPack({
id: 'vue', cache: false, loaders: [{
loader: 'vue-loader', options:vueLoaderConfig }], threadPool: happyThreadPool }), ], node: {
...} }
其他的就没了 。有漏掉的知识点,朋友们请在留言评论。谢谢
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176612.html原文链接:https://javaforall.net
