mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-03-03 04:48:37 -06:00
feat: add create option for router history mode
This commit is contained in:
@@ -6,7 +6,9 @@ module.exports = (api, options) => {
|
||||
'vue-router': '^3.0.1'
|
||||
}
|
||||
})
|
||||
api.render('./template')
|
||||
api.render('./template', {
|
||||
historyMode: options.routerHistoryMode
|
||||
})
|
||||
|
||||
if (api.invoking) {
|
||||
api.postProcessFiles(files => {
|
||||
|
||||
@@ -5,6 +5,10 @@ import Home from './views/Home.vue'
|
||||
Vue.use(Router)
|
||||
|
||||
export default new Router({
|
||||
<%_ if (historyMode) { _%>
|
||||
mode: 'history',
|
||||
base: process.env.BASE_URL,
|
||||
<%_ } _%>
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
|
||||
@@ -41,9 +41,16 @@ async function add (pluginName, options = {}, context = process.cwd()) {
|
||||
}
|
||||
|
||||
async function addRouter (context) {
|
||||
const inquirer = require('inquirer')
|
||||
const options = await inquirer.prompt([{
|
||||
name: 'routerHistoryMode',
|
||||
type: 'confirm',
|
||||
message: `Use history mode for router? ${chalk.yellow(`(Requires proper server setup for index fallback in production)`)}`
|
||||
}])
|
||||
invoke.runGenerator(context, {
|
||||
id: 'core:router',
|
||||
apply: loadModule('@vue/cli-service/generator/router', context)
|
||||
apply: loadModule('@vue/cli-service/generator/router', context),
|
||||
options
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ const rcPath = exports.rcPath = getRcPath('.vuerc')
|
||||
const presetSchema = createSchema(joi => joi.object().keys({
|
||||
useConfigFiles: joi.boolean(),
|
||||
router: joi.boolean(),
|
||||
routerHistoryMode: joi.boolean(),
|
||||
vuex: joi.boolean(),
|
||||
cssPreprocessor: joi.string().only(['sass', 'less', 'stylus']),
|
||||
plugins: joi.object().required(),
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
const chalk = require('chalk')
|
||||
|
||||
module.exports = cli => {
|
||||
cli.injectFeature({
|
||||
name: 'Router',
|
||||
@@ -6,9 +8,17 @@ module.exports = cli => {
|
||||
link: 'https://router.vuejs.org/'
|
||||
})
|
||||
|
||||
cli.injectPrompt({
|
||||
name: 'routerHistoryMode',
|
||||
when: answers => answers.features.includes('router'),
|
||||
type: 'confirm',
|
||||
message: `Use history mode for router? ${chalk.yellow(`(Requires proper server setup for index fallback in production)`)}`
|
||||
})
|
||||
|
||||
cli.onPromptComplete((answers, options) => {
|
||||
if (answers.features.includes('router')) {
|
||||
options.router = true
|
||||
options.routerHistoryMode = answers.routerHistoryMode
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user