
# 为Node.js函数制作依赖包
**制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。**若所需依赖涉及操作系统相关的依赖包，使用其他操作系统环境打包时，可能因底层依赖库的差异而出现找不到动态链接库的问题。
#### 约束与限制
如果安装的依赖模块需要添加依赖库，请将依赖库归档到zip依赖包文件中，例如，添加.dll、.so、.a等依赖库。
 #### 搭建EulerOS环境
推荐在EulerOS环境中制作函数依赖包，EulerOS是基于开源技术的企业级Linux操作系统软件，具备高安全性、高可扩展性、高性能等技术特性，能够满足客户IT基础设施和云计算服务等多业务场景需求。
此处推荐[Huawei Cloud EulerOS](https://support.huaweicloud.com/productdesc-hce/hce_01_0001.html)，可选择以下方法搭建环境：
- 在华为云购买一台EulerOS的ECS弹性云服务器，请参见[购买并登录Linux弹性云服务器](https://support.huaweicloud.com/qs-ecs/ecs_01_0103.html)。在基础配置环节选择公共镜像时，选择"Huawei Cloud EulerOS操作系统"和具体的镜像版本。
- 下载[EulerOS镜像](https://mirrors.huaweicloud.com/mirrorDetail/5ea14e19abfb3ecc27a7e240?mirrorName=euler&catalog=os)，在本地使用虚拟化软件搭建EulerOS系统的虚拟机。
 
#### 为Node.js函数制作依赖包
制作依赖包前，请确认环境中已安装与函数运行时相匹配版本的Node.js。以Node.js 20.15安装MySQL依赖包为例，其他版本和依赖包制作过程相同。
1. 执行如下命令，为Node.js 20.15安装MySQL依赖包。 
   ```
   npm install mysql --save
   ```
   命令执行后，在当前目录下会生成一个node_modules文件夹。
   
   
2. 使用以下命令生成ZIP包，即可生成最终需要的依赖包。 
   ```
   zip -rq mysql-node20.15.zip node_modules
   ```
   
   
如需同时封装多个依赖包，建议参考以下步骤操作：
1. 新建一个package.json文件，在package.json中填入如下内容。**请根据实际需求修改其中的依赖包版本号。**
   
   ```
   {
   "name": "test",
   "version": "1.0.0",
   "dependencies": {
   "redis": "~2.8.0",
   "mysql": "~2.17.1"
   }
   }
   ```
   
   
2. 执行如下命令。 
   ```
   npm install --save
   ```
   
   
3. 再将node_modules打包成zip，即可生成一个既包含MySQL也包含redis的依赖包。 
   ```
   zip -rq mysql-node20.15.zip node_modules
   ```
   
   
 
#### 相关文档
- 使用Node.js开发事件函数，请参见[开发Node.js事件函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0410.html)。
- 使用Node.js运行时语言开发HTTP函数，请参见[使用Node.js开发HTTP函数](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0611.html)。
- 为Node.js函数制作依赖包，请参见[为Node.js函数制作依赖包](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0612.html)。
- 关于函数开发的更多说明，如函数支持的运行时、函数支持的触发事件、函数工程打包规范以及如何在函数中引入动态链接库，请参见[函数开发概述](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0100.html)。
 
