mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 14:15:13 +00:00
perf(builder): experimental thread-loader and cache-loader
This commit is contained in:
parent
7e308f9340
commit
88bab354b0
@ -99,10 +99,37 @@ export default class WebpackBaseConfig {
|
||||
}
|
||||
}
|
||||
|
||||
perfLoaders(_baseLoaders) {
|
||||
if (this.options.dev) {
|
||||
return _baseLoaders
|
||||
}
|
||||
|
||||
const loaders = []
|
||||
|
||||
if (this.options.build.cache) {
|
||||
// https://github.com/webpack-contrib/cache-loader
|
||||
loaders.push({
|
||||
loader: 'cache-loader',
|
||||
options: {
|
||||
cacheDirectory: path.resolve('node_modules/.cache/cache-loader')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (this.options.build.parallel) {
|
||||
// https://github.com/webpack-contrib/thread-loader
|
||||
loaders.push({
|
||||
loader: 'thread-loader',
|
||||
options: {}
|
||||
})
|
||||
}
|
||||
|
||||
return loaders.concat(_baseLoaders)
|
||||
}
|
||||
|
||||
rules() {
|
||||
const styleLoader = createStyleLoader({
|
||||
isServer: this.isServer
|
||||
})
|
||||
const styleLoader = createStyleLoader({ isServer: this.isServer })
|
||||
|
||||
return [
|
||||
{
|
||||
test: /\.vue$/,
|
||||
@ -111,12 +138,20 @@ export default class WebpackBaseConfig {
|
||||
},
|
||||
{
|
||||
test: /\.jsx?$/,
|
||||
loader: 'babel-loader',
|
||||
exclude: /node_modules/,
|
||||
options: this.getBabelOptions()
|
||||
use: this.perfLoaders({
|
||||
loader: 'babel-loader',
|
||||
options: this.getBabelOptions()
|
||||
})
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: styleLoader.call(this.builder, 'css')
|
||||
},
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: styleLoader.call(this.builder, 'less', 'less-loader')
|
||||
},
|
||||
{ test: /\.css$/, use: styleLoader.call(this.builder, 'css') },
|
||||
{ test: /\.less$/, use: styleLoader.call(this.builder, 'less', 'less-loader') },
|
||||
{
|
||||
test: /\.sass$/,
|
||||
use: styleLoader.call(this.builder, 'sass', {
|
||||
@ -124,7 +159,10 @@ export default class WebpackBaseConfig {
|
||||
options: { indentedSyntax: true }
|
||||
})
|
||||
},
|
||||
{ test: /\.scss$/, use: styleLoader.call(this.builder, 'scss', 'sass-loader') },
|
||||
{
|
||||
test: /\.scss$/,
|
||||
use: styleLoader.call(this.builder, 'scss', 'sass-loader')
|
||||
},
|
||||
{
|
||||
test: /\.styl(us)?$/,
|
||||
use: styleLoader.call(this.builder, 'stylus', 'stylus-loader')
|
||||
|
@ -1,4 +1,6 @@
|
||||
import path from 'path'
|
||||
import os from 'os'
|
||||
|
||||
import isCI from 'is-ci'
|
||||
|
||||
export default {
|
||||
@ -35,6 +37,8 @@ export default {
|
||||
extractCSS: false,
|
||||
cssSourceMap: undefined,
|
||||
ssr: undefined,
|
||||
parallel: os.cpus().length > 1,
|
||||
cache: true,
|
||||
publicPath: '/_nuxt/',
|
||||
filenames: {
|
||||
app: '[name].[chunkhash].js',
|
||||
|
@ -62,6 +62,7 @@
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-loader": "^7.1.4",
|
||||
"babel-preset-vue-app": "^2.0.0",
|
||||
"cache-loader": "^1.2.2",
|
||||
"chalk": "^2.3.2",
|
||||
"chokidar": "^2.0.1",
|
||||
"compression": "^1.7.1",
|
||||
@ -101,6 +102,7 @@
|
||||
"server-destroy": "^1.0.1",
|
||||
"source-map": "^0.7.2",
|
||||
"style-resources-loader": "^1.1.0",
|
||||
"thread-loader": "^1.1.5",
|
||||
"time-fix-plugin": "^2.0.0",
|
||||
"uglifyjs-webpack-plugin": "^1.2.4",
|
||||
"upath": "^1.0.2",
|
||||
|
19
yarn.lock
19
yarn.lock
@ -398,7 +398,7 @@ async@^1.4.0:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
||||
|
||||
async@^2.1.4:
|
||||
async@^2.1.4, async@^2.3.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
|
||||
dependencies:
|
||||
@ -1322,6 +1322,15 @@ cache-base@^1.0.1:
|
||||
union-value "^1.0.0"
|
||||
unset-value "^1.0.0"
|
||||
|
||||
cache-loader@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5"
|
||||
dependencies:
|
||||
loader-utils "^1.1.0"
|
||||
mkdirp "^0.5.1"
|
||||
neo-async "^2.5.0"
|
||||
schema-utils "^0.4.2"
|
||||
|
||||
caller-path@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
|
||||
@ -6960,6 +6969,14 @@ text-table@~0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
|
||||
thread-loader@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-1.1.5.tgz#7f9d6701f773734fff1832586779021ab8571917"
|
||||
dependencies:
|
||||
async "^2.3.0"
|
||||
loader-runner "^2.3.0"
|
||||
loader-utils "^1.1.0"
|
||||
|
||||
throat@4.1.0, throat@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
|
||||
|
Loading…
Reference in New Issue
Block a user