uniCloud云函数公用模块
uniCloud云函数公用模块
自HBuilderX 2.6.6-alpha
起,uniCloud
提供了云函数模块公用方案。以下面的目录结构为例,介绍一下如何使用。
|--cloudfunctions
|--common // 云函数公用模块目录
|--hello-common // 云函数公用模块
|--package.json
|--index.js // 公用模块代码,可以不使用index.js,修改 package.json 内的 main 字段可以指定此文件名
|--use-common // 使用公用模块的云函数
|--package.json // 在 use-common 目录执行 npm init -y 生成
|--index.js // 云函数入口文件
创建并引入公用模块
- 在
cloudfunctions
目录下创建common
目录 - 在
common
目录右键创建公用模块目录(本例中为hello-common
,见下方示例图),会自动创建入口index.js
文件和package.json
,不要修改此package.json
的name
字段 - 在
hello-common
右键上传公用模块 - 在要引入公用模块的云函数目录(本例中为
use-common
)执行npm init -y
生成package.json
文件 - 在
use-common
目录执行npm install ../common/hello-common
引入hello-common
模块
index.js
module.exports = {
secret: 'abcdefg',
getVersion: function(){
return '1.0.0'
}
}
package.json
{
"name": "hello-common",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
注意事项
- 如需修改公用模块需要在
common
目录下修改,修改之后不需要重新执行npm install
- 如果要更新所有依赖某公用模块的云函数,可以在
common
目录下的公用模块目录(本例中为hello-common
)右键选择更新依赖本模块的云函数 - 公用模块命名不可与
Node.js
内置模块重名 - 安装公用模块时不推荐使用
yarn
,与npm install
表现不一样,yarn
不会创建软链接而是直接拷贝文件到node_modules
,这样会导致修改公用模块云函数内引用的公用模块不会同步修改 - 从插件市场导入或者其他地方复制项目可能会导致
npm install
创建的软链接失效,如果遇到这种情况请删除node_modules
和package-lock.json
重新npm install
使用公用模块
仍以上面的目录为例,在公用模块内exports
,在云函数内require
即可。示例代码如下:
// common/hello-common/index.js
function getVersion() {
return '0.0.1'
}
module.exports = {
getVersion,
secret: 'your secret'
}
// use-common/index.js
'use strict';
const {
secret,
getVersion
} = require('hello-common')
exports.main = async (event, context) => {
let version = getVersion()
return {
secret,
version
}
}
如果仅需要导出一个function
还可以使用以下写法
// common/hello-common/index.js
module.exports = function(e){
return e
}
// use-common/index.js
'use strict';
const echo = require('hello-common')
exports.main = async (event, context) => {
let eventEcho = echo(event)
return {
eventEcho
}
}
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/18/unicloud-cloud-function-common-module/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
uniCloud云函数公用模块
uniCloud云函数公用模块
自HBuilderX 2.6.6-alpha起,uniCloud提供了云函数模块公用方案。以下面的目录结构为例,介绍一下如何使用。
|--cloudfunctions
|-……
文章目录
关闭
共有 0 条评论