Я пытаюсь создать небольшой скрипт сборки, который будет запрашивать у пользователя местоположение заголовков mysql, если они не найдены в пути по умолчанию.Сейчас я использую inquirer
, чтобы запросить у пользователя ввод, который работает нормально, но я столкнулся со следующей проблемой:
'use strict'
const inquirer = require('inquirer')
const fs = require('fs')
const MYSQL_INCLUDE_DIR = '/usr/include/mysql'
let questions = [
{
type: 'input',
name: 'MYSQL_INCLUDE_DIR',
message: 'Enter path to mysql headers',
default: MYSQL_INCLUDE_DIR,
when: (answers) => {
return !fs.existsSync(MYSQL_INCLUDE_DIR)
},
validate: (path) => {
return fs.existsSync(path)
}
}
]
inquirer.prompt(questions)
.then((answers) => {
// Problem is that answers.MYSQL_INCLUDE_DIR might be undefined at this point.
})
Если путь по умолчанию к заголовкам mysqlнайденный, тогда вопрос не будет отображаться, и поэтому ответ не будет задан.Как я могу установить значение по умолчанию для вопроса, фактически не показывая его пользователю?
Решение вышеизложенного также позволило бы сделать это вместо использования глобальной переменной:
let questions = [
{
type: 'input',
name: 'MYSQL_INCLUDE_DIR',
message: 'Enter path to mysql headers',
default: MYSQL_INCLUDE_DIR,
when: (answers) => {
return !fs.existsSync(answers.MYSQL_INCLUDE_DIR)
},
validate: (path) => {
return fs.existsSync(path)
}
}
]