VSCode部署Azure Function后@azure/functions模块被删除如何自动重装
问题原因
你遇到的问题本质是@azure/functions目前放在devDependencies中,VSCode Azure Functions插件默认部署前会执行npm install --production清理开发依赖,导致本地的该包被删除,本地开发时的导入语法校验、调试依赖就会报错。
可选解决方案
方案1:修改launch配置,启动前自动补装开发依赖
首先在你的.vscode/tasks.json中新增两个任务配置(如果没有tasks.json文件可以新建):
{ "version": "2.0.0", "tasks": [ // 新增安装所有依赖的任务 { "label": "install-all-deps", "type": "shell", "command": "npm install", "problemMatcher": [] }, // 新增组合任务,先装依赖再启动函数宿主 { "label": "func: start with deps check", "dependsOn": ["install-all-deps", "func: host start"], "dependsOrder": "sequence" } ] }
再修改launch.json中的preLaunchTask字段,替换为新增的组合任务:
"configurations": [ { "name": "Attach to Node Functions", "type": "node", "request": "attach", "port": 9229, "preLaunchTask": "func: start with deps check" } ]
配置完成后每次启动调试前都会自动执行npm install补全被删除的开发依赖。
方案2:修改部署配置,避免本地依赖被清理
在.vscode/settings.json中添加以下配置,开启云端构建,部署时不再本地执行生产依赖安装,也就不会删除本地的开发依赖:
{ "azureFunctions.scmDoBuildDuringDeployment": true }
开启后部署逻辑改为:推送源代码到Azure,云端自动执行依赖安装、构建流程,本地node_modules不会被修改,也就不会出现@azure/functions被删除的问题。
方案3:最简适配方案
直接把@azure/functions从devDependencies移到dependencies中,该包体积很小,部署到云端也不会影响运行性能和功能,无需修改其他配置就能解决问题。
内容的提问来源于stack exchange,提问作者TheWolf
相关产品推荐
相关产品推荐

