VSCode 任务,npm 脚本的用户输入

VSCode Tasks, user input for npm script

我正在尝试为 package.json 中配置的 的 npm 脚本创建任务。所以,这里是文件:

package.json

....
scripts : {
    "migrate": "node_modules/.bin/migrate-mongo",
    "migrate:create": "npm run migrate create" // --> this command needs input (file name)
}
....

现在,当我必须 运行 migrate:create 命令时,我必须像这样转到 shell 和 运行 :

$> npm run migrate:craete filename

而且效果很好。

现在我想为此创建一个任务。为此,我做了一些研究,并从中汲取了灵感: 创建了 tasks.json as:

tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "Create a db migration script.",
      "command": "npm run migrate create ${input:migrationName}",
      
    }
  ],
  "inputs": [
    {
      "type": "promptString",
      "id": "migrationName",
      "description": "Name your migration script?",
      "default": "create"
    }
  ]
}

但不知何故,它没有给我一个文本框来输入任何内容,而是直接进入内部并发出命令:npm 运行 migrate:create 这是由于缺少文件名而失败。

哪位大神能给点意见,我缺少什么,错过了什么,请告诉我?

提前致谢, 编码愉快:)

所以,最后我做了一些研究并找到了解决方案,这里是:

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "Create Migration Script",
            "command": "npm run migrate:create ${input:migrationName}",
            "problemMatcher": []
        }
    ],
    "inputs": [
        {
            "type": "promptString",
            "id": "migrationName",
            "description": "Name your migration script (prefix with create-, update-, delete-, insert-)?"
        }
    ]
}

这里的命令是我在pacakage.json中配置的实际脚本为:

package.json

....
scripts : {
    "migrate": "node_modules/.bin/migrate-mongo",
    "migrate:create": "npm run migrate create",
}
....

在tasks.json的命令中我提到了在package.json[=中配置的npm 运行脚本 29=].

谢谢,编码愉快:)