查看“小程序云开发:云函数的配置与部署”的源代码
←
小程序云开发:云函数的配置与部署
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==云函数的开发环境== 云开发的云函数是一项无服务器计算服务,以函数的形式运行后端代码来响应事件以及调用其他服务。云函数支持多种编程语言,但是最为推荐的就是JavaScript,运行环境是Node.js。在这个章节我们会来讲解云函数开发环境的配置以及云函数如何部署到云端。 ===下载安装Node.js=== Node.js是在服务端运行JavaScript的运行环境,云开发所使用的服务端环境就是Node.js。npm是Node包管理器,通过npm,我们可以非常方便的安装云开发所需要的依赖包。 npm是前端开发必不可少的包(模块)管理器,它的主要功能就是来管理包package,包括安装、卸载、更新、查看、搜索、发布等,其他编程语言也有类似的包管理器,比如Python的pip,PHP的composer、Java的maven。我们可以把包管理器看成是windows的软件管理中心或手机的应用中心,只是它们用的是可视化界面,包管理器用的是命令行Command Line。 下载地址:Node.js下载地址:https://nodejs.org/zh-cn/ 大家可以根据电脑的操作系统下载相应的Node.js安装包并安装(安装时不要修改安装目录,啥也别管直接next安装即可)。打开电脑终端(Windows电脑为cmd命令提示符,Mac电脑为终端Terminal),然后逐行输入并按Enter执行下面的代码: <nowiki>node --version npm --version</nowiki> 如果显示为v12.18.1以及6.14.5(可能你的版本号会有所不同),表示你的Node.js环境已经安装成功。 学编程要仔细,一个字母,一个单词,一个标点符号都不要出错哦。注意输上面的命令时node、npm的后面有一个空格,而且是两个短横杠 –。 ===安装淘宝镜像cnpm=== 使用npm来下载一些package的速度可能会比较慢,我们可以安装淘宝镜像来加速,在确信了Node.js环境安装成功了的情况下,继续在终端输入以下命令(Windows电脑不要加sudo): sudo npm install -g cnpm --registry=https://registry.npm.taobao.org 这个时候会要求你输入你的电脑密码Password:,输入密码时是不显示内容的,输入之后按Enter执行。安装完成之后,我们可以再在终端确认cnpm是否安装成功: cnpm --version 如果显示的结果有类似cnpm@6.1.1的内容,就表示cnpm安装成功啦,以后本教程在安装package的时候仍然会使用npm install,如果你在执行时速度比较慢,建议后面都改为cnpm install(这个非常重要)。 ==部署并上传云函数== ===云函数的根目录与云函数目录=== cloudfuntions文件夹图标里有朵小云,表示这就是'''云函数根目录'''。展开cloudfunctions,我们可以看到里面有login、openapi、callback、echo等文件夹,这些就是'''云函数目录'''。而miniprogram文件夹则放置的是'''小程序的页面文件'''。 cloudfunctions里放的是云函数,miniprogram放的是小程序的页面,这并不是一成不变的,也就是说你也可以修改这些文件夹的名称,这取决于项目配置文件project.config.json里的如下配置项: "miniprogramRoot": "miniprogram/", "cloudfunctionRoot": "cloudfunctions/", 但是你最好是让放小程序页面的文件夹以及放云函数的文件夹处于平级关系且都在项目的根目录下,便于管理。 ===云函数部署与上传=== 使用鼠标右键其中的一个云函数目录比如login,在右键菜单中选择'''在外部终端窗口中打开'''(Windows电脑不要在“在内建终端中打开”),打开后在终端中输入以下代码并按Enter回车执行: cnpm install --save 如果显示“npm不是内部或外部命令”,你需要关闭微信开发者工具启动的终端,而是重新打开一个终端窗口,并在里面输入cd /D 你的云函数目录进入云函数目录,比如 cd /D C:\download\tcb-project\cloudfunctions\login进入login的云函数目录,然后再来执行cnpm install --save命令。 注:这一步如果出现peerDependencies WARNING ...requires a peer of XXX but none was installed 错误,可参考https://blog.csdn.net/qq_37279880/article/details/106180838 解决。 这时候会下载云函数的依赖模块,下载完成后,再右键login云函数目录,点击“'''创建并部署:所有文件'''”,这时会把本地的云函数上传到云端,上传成功后在login云函数目录图标会变成一朵小云。 在开发者工具的工具栏上点击“'''云开发'''”图标会打开云开发控制台,在云开发控制台点击'''云函数'''图标,就能在云函数列表里看到我们上传好的“login”云函数啦。 接下来我们按照这样的流程把'''其他所有云函数'''(如openapi)都部署都上传,也就是要执行和上面相同的步骤,总结如下: 1.右键云函数目录,选择在终端中打开,输入cnpm install --save命令下载依赖文件; 2.然后再右键云函数目录,点击“创建并部署:所有文件” 3.在云开发控制台–云函数–云函数列表查看云函数是否部署成功。 login、openapi、echo、callback这些云函数只是云开发QuickStart自带的云函数案例,在你体验QuickStart小程序案例的时候会使用到。 [[文件:wexin21021608.png|600px]] ==npm包管理器与依赖== ===云函数包管理=== 为什么要在云函数目录执行npm install,而不是其他地方?这是因为npm install会下载云函数目录下的配置文件package.json里的dependencies,它表示的是当前云函数需要依赖的模块。package.json在哪里,就在哪里执行npm install,没有package.json,没有dependencies,就没法下载啊。 执行npm install命令下载的依赖模块会放在node_modules文件夹里,大家可以在执行了npm install命令之后,在电脑里打开查看一下node_modules文件夹里下载了哪些模块。 既然npm install是下载模块,那它是从哪里下载的呢?就以wx-server-sdk为例,我们可以在以下链接看到wx-server-sdk的情况: https://www.npmjs.com/package/wx-server-sdk 为什么package.json里依赖的是一个模块wx-server-sdk,但是node_modules文件夹里却下载了那么多模块?这是因为wx-server-sdk也依赖四个包@cloudbase/node-sdk、tcb-admin-node、protobuf、jstslib,而这四个包又会依赖其他包,子子孙孙的,于是就有了很多模块。 node_modules文件夹这么大(几十M~几百M都可能),会不会影响小程序的大小?小程序的大小只与miniprogram文件夹有关,当你把云函数都部署上传到服务器之后,你把整个cloudfuntions文件夹删掉都没有关系。相同的依赖(比如都依赖wx-server-sdk)一旦部署到云函数之后,你可以选择不上传node_modules时,因为已经上传过了。 ===wx-server-sdk的版本=== 打开任意一个云函数比如login目录下的配置文件package.json,我们可以看到包含如下代码: <nowiki>{ "dependencies": { "wx-server-sdk": "~2.1.2" } }</nowiki> 这里的~2.1.2是wx-server-sdk依赖的版本,一般我们建议大家使用最新的版本号(生产环境以稳定兼容的版本为准),比如我们可以将上面的代码修改为: <nowiki>{ "dependencies": { "wx-server-sdk": "latest" } }</nowiki> 直接在云函数目录右键“在终端中打开”执行npm install,等同于命令: npm install --save wx-server-sdk@latest
返回至
小程序云开发:云函数的配置与部署
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息