我正在尝试为配置的npm脚本创建一个任务在package.json。下面是文件:
package.json
....
scripts : {
"migrate": "node_modules/.bin/migrate-mongo",
"migrate:create": "npm run migrate create" // --> this command needs input (file name)
}
....
现在,当我必须运行迁移:创建命令,我必须进入shell并像这样运行:
$> npm run migrate:craete filename
效果很好。
现在我想为它创建一个任务。为此,我做了一些研究,并从:https://stackoverflow.com/a/53846572/1227940创建了任务。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这是失败的,因为文件名丢失。
有没有人能告诉我,我缺少什么,我错过了什么,请让我知道?
提前感谢,快乐编码:)
所以,最后我做了一些研究,找到了解决方案,下面是:
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-)?"
}
]
}
这里的命令是我在packakage .json中配置的实际脚本。:package.json
....
scripts : {
"migrate": "node_modules/.bin/migrate-mongo",
"migrate:create": "npm run migrate create",
}
....
在任务命令中。npm运行脚本在package.json中配置.
谢谢和快乐的编码:)