我正试图从launch.json启动serverless,但运气不佳(尽管它在命令行中运行得很好(。如何启动此功能?
错误:
属性"program"不存在
从项目根目录中的VSCode命令行来看,这非常有效:
sls deploy --config slsSite.yml
这是我当前的发布配置:
{
"type": "node",
"request": "launch",
"name": "deploy site",
"preLaunchTask": "buildsite", //ref tasks.json
"program": "${workspaceFolder}\serverless",
"args": ["deploy", "--config slsSite.yml"]
}
当我将程序更改为节点模块的路径时:
"program":"${workspaceFolder}\serverless_site\node_modules\serverless\bin\serverless
我得到:
此命令只能在无服务器服务目录中运行。如果您使用自定义配置文件,请确保在当前工作目录中引用有效的配置文件
然后我尝试了(除了上面的程序行(:
"args": ["deploy", "--config ${workspaceFolder}\slsSite.yml"]
得到了同样的错误。
This command can only be run in a Serverless service directory
看起来需要特定的工作目录。据我所知,人们通常在他们的站点文件夹(包含node_modules的文件夹(中运行sls。我会考虑尝试将工作文件夹(在vscode中通常为"cwd"(设置为"${workspaceFolder}\\serverless_site"。
Attribute 'program' does not exist
已通过在本地安装节点模块在此处解决。
Serverless正在您的当前目录中查找配置文件,但找不到。
看看这条线
"program":"${workspaceFolder}\serverless_site\node_modules\serverless\bin\serverless
看起来您的workspaceFolder不是项目的根目录。您可以更改Serverless项目是工作区的根,或者更改launch.json中的cwd(当前工作目录(,如下所示:
"cwd": "${workspaceFolder}\serverless_site",
供将来参考:请记住,VSCode更喜欢打开项目根目录下的工作区。只有到那时,它才知道默认情况下如何使用所有脚本。