UNPKG

1.13 kBJavaScriptView Raw
1const path = require('path')
2const resolveFrom = require('resolve-from')
3
4exports.name = 'builtin:config-vue'
5
6exports.apply = api => {
7 api.hook('createWebpackChain', config => {
8 const rule = config.module.rule('vue').test(/\.vue$/)
9
10 api.webpackUtils.addCacheSupport(rule, () => {
11 const vueLoaderPath = path.dirname(require.resolve('vue-loader'))
12 const compilerPkg = require(resolveFrom(
13 vueLoaderPath,
14 '@vue/component-compiler-utils/package'
15 ))
16 return api.getCacheConfig('vue-loader', {
17 'vue-loader': require('vue-loader/package').version,
18 '@vue/component-compiler-utils': compilerPkg.version,
19 'vue-template-compiler': api.localResolve(
20 'vue-template-compiler/package'
21 )
22 ? api.localRequire('vue-template-compiler/package').version
23 : null
24 })
25 })
26
27 rule
28 .use('vue-loader')
29 .loader('vue-loader')
30 .options({
31 // TODO: error with thread-loader
32 compiler: api.localRequire('vue-template-compiler')
33 })
34
35 config.plugin('vue').use(require('vue-loader/lib/plugin'))
36 })
37}