You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
4 years ago
|
module.exports = (api, options = {}, rootOptions = {}) => {
|
||
|
const isVue3 = (rootOptions.vueVersion === '3')
|
||
|
|
||
|
api.injectImports(api.entryFile, `import router from './router'`)
|
||
|
|
||
|
if (isVue3) {
|
||
|
api.transformScript(api.entryFile, require('./injectUseRouter'))
|
||
|
api.extendPackage({
|
||
|
dependencies: {
|
||
|
'vue-router': '^4.0.0-0'
|
||
|
}
|
||
|
})
|
||
|
} else {
|
||
|
api.injectRootOptions(api.entryFile, `router`)
|
||
|
|
||
|
api.extendPackage({
|
||
|
dependencies: {
|
||
|
'vue-router': '^3.2.0'
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
api.render('./template', {
|
||
|
historyMode: options.historyMode,
|
||
|
doesCompile: api.hasPlugin('babel') || api.hasPlugin('typescript'),
|
||
|
hasTypeScript: api.hasPlugin('typescript')
|
||
|
})
|
||
|
|
||
|
if (isVue3) {
|
||
|
api.render('./template-vue3', {
|
||
|
historyMode: options.historyMode,
|
||
|
doesCompile: api.hasPlugin('babel') || api.hasPlugin('typescript'),
|
||
|
hasTypeScript: api.hasPlugin('typescript')
|
||
|
})
|
||
|
}
|
||
|
|
||
|
if (api.invoking) {
|
||
|
if (api.hasPlugin('typescript')) {
|
||
|
/* eslint-disable-next-line node/no-extraneous-require */
|
||
|
const convertFiles = require('@vue/cli-plugin-typescript/generator/convert')
|
||
|
convertFiles(api)
|
||
|
}
|
||
|
}
|
||
|
}
|