【发布时间】:2023-03-31 04:47:01
【问题描述】:
我正在使用 typescript 编写一个小型 CLI,并且我有一个命令,它基本上允许我生成一个包含默认值的 json 文件(就像 npm init -y),但我不知道如何自动回答询问者的问题。
这是我目前得到的:
export const initializeConfig = (project: string, ...args: boolean[]) => {
prompt([
{
type: "input",
name: "name",
message: "What is the name of the project?",
default: basename(cwd()),
when: () => args.every((arg) => arg === false),
},
{
type: "list",
name: "project",
message: "What is the type of the project?",
choices: ["Node", "Python"],
default: project,
when: () => args.every((arg) => arg === false),
},
])
.then((answers: Answers) => {
config = setConfig({ name: answers.name });
config = setConfig({ project: answers.project });
})
.then(() =>
prompt([
{
type: "input",
name: "path",
message: "Where is your project root located?",
default: ".",
when: () => args.every((arg) => arg === false),
},
{
type: "input",
name: "ignore",
message: "What do you want to ignore? (comma separated)",
default: defaultIgnores(config.project).ignore,
when: () => args.every((arg) => arg === false),
},
]).then((answers: Answers) => {
config = setConfig(ignoreFiles(config.project, answers.ignore));
createConfig(answers.path, config);
})
);
};
我想如果我用when() 跳过/隐藏问题,它会使用默认值,但事实并非如此。总是undefined。
目前在网上没有找到这个话题。有什么想法吗?
【问题讨论】:
标签: javascript node.js command-line-interface inquirer