mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-19 13:50:11 -06:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
module.exports = (api, options) => {
|
|
const useThreads = process.env.NODE_ENV === 'production' && options.parallel
|
|
const cacheDirectory = api.resolve('node_modules/.cache/cache-loader')
|
|
|
|
api.chainWebpack(webpackConfig => {
|
|
const jsRule = webpackConfig.module
|
|
.rule('js')
|
|
.test(/\.jsx?$/)
|
|
.include
|
|
.add(api.resolve('src'))
|
|
.add(api.resolve('test'))
|
|
.end()
|
|
.use('cache-loader')
|
|
.loader('cache-loader')
|
|
.options({ cacheDirectory })
|
|
.end()
|
|
|
|
if (useThreads) {
|
|
jsRule
|
|
.use('thread-loader')
|
|
.loader('thread-loader')
|
|
}
|
|
|
|
jsRule
|
|
.use('babel-loader')
|
|
.loader('babel-loader')
|
|
|
|
webpackConfig.module
|
|
.rule('vue')
|
|
.use('vue-loader')
|
|
.tap(options => {
|
|
options.loaders = options.loaders || {}
|
|
options.loaders.js = [
|
|
{
|
|
loader: 'cache-loader',
|
|
options: { cacheDirectory }
|
|
}
|
|
]
|
|
if (useThreads) {
|
|
options.loaders.js.push({
|
|
loader: 'thread-loader'
|
|
})
|
|
}
|
|
options.loaders.js.push({
|
|
loader: 'babel-loader'
|
|
})
|
|
return options
|
|
})
|
|
})
|
|
}
|