[Vue|[Vue CLI 3] 配置解析之 parallel
官方文档中介绍过在 vue.config.js
文件中可以配置 parallel
,作用如下:
是否为 Babel 或 TypeScript 使用 thread-loader。
该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建
我们看一下
源码
部分:parallel
接受 boolean
值:parallel: joi.boolean()
默认设置如下:
parallel: hasMultipleCores()
依赖了函数
hasMultipleCores
in some cases cpus() returns undefined, and may simply throw in the future详情见:https://github.com/nodejs/nod...
通过核心包
os
的 cpus
函数function hasMultipleCores () {
try {
return require('os').cpus().length > 1
} catch (e) {
return false
}
}
那它会影响什么呢?
babel 部分
在 @vue/cli-plugin-babel/README.md 也提到了:
thread-loader is enabled by default when the machine has more than 1 CPU cores. This can be turned off by setting
parallel: false
in vue.config.js
.我们来看一下源码:
【[Vue|[Vue CLI 3] 配置解析之 parallel】在线上环境和
vue.config.js
中的配置 parallel
:const useThreads = process.env.NODE_ENV === 'production' && options.parallel
然后如果
useThreads
为 true
,会 use
插件 thread-loader
if (useThreads) {
jsRule
.use('thread-loader')
.loader('thread-loader')
}
所以大家应该知道,如果你在某个项目里面看到 vue.config.js 配置了:
parallel: require('os').cpus().length > 1
其实是
多余
的,而且不保险
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- 从战略性的角度可以配置股票
- VueX--VUE核心插件
- vue组件中为何data必须是一个函数()
- 用npm发布一个包的教程并编写一个vue的插件发布
- 缓存有关的配置和属性
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- vuex|vuex 基础结构
- Vue源码分析—响应式原理(二)