【问题标题】:VSCode Tasks, user input for npm scriptVSCode 任务,npm 脚本的用户输入
【发布时间】:2021-01-17 14:01:05
【问题描述】:

我正在尝试为 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

而且效果很好。

现在我想为此创建一个任务。为此,我做了一些研究并从以下方面汲取了想法: https://stackoverflow.com/a/53846572/1227940 创建 tasks.json 为

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 run migrate:create,由于文件名丢失而失败。

谁能告诉我,我缺少什么,我错过了什么,请告诉我?

提前致谢, 快乐编码:)

【问题讨论】:

标签: visual-studio-code vscode-tasks


【解决方案1】:

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

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的命令中我提到了npm run script,它是在package.json中配置的。

感谢和愉快的编码:)

【讨论】:

    猜你喜欢
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2014-09-07
    相关资源
    最近更新 更多