开发者社区 > 云原生 > Serverless > 正文

使用函数计算fc部署node项目,还是没有看到node_modules,是我哪里配置错了吗?

使用函数计算fc部署node项目,目前使用nodejs18,想通过自定义层添加依赖,我添加层之后项目并没有用到层里面的依赖,而是每次push代码到github上需要重新到fc控制台执行一遍npm i安装依赖,请问这个怎么解决?
146aa810615281b0bf0a6d5c53735b51.jpg
还是没有看到node_modules,是我哪里配置错了吗

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-07 11:34:39 58 0
3 条回答
写回答
取消 提交回答
  • 如果您要安装的第三方依赖包体积较大,每次部署函数代码速度较慢,可以自定义目录/node_modules并将其打包为层,然后让函数去引用此层。最后删除代码目录中的/node_modules目录。示例代码如下所示。https://help.aliyun.com/zh/fc/developer-reference/use-webide-to-package-third-party-dependencies-of-a-function?spm=a2c4g.11186623.0.i126

    ```# 1. 将node_modules目录发布成一个层
    mkdir nodejs
    mv node_modules ./nodejs
    zip -ry nodejs.zip nodejs
    s cli fc layer publish --layer-name myNodeLibLayer --code /code/nodejs.zip --compatible-runtime nodejs16,nodejs14,nodejs12,nodejs10,custom,custom.debian10 --region cn-hangzhou -a default
    ...
    395da10bf789aa49dd035db01bab**#myNodeLibLayer#1

    2. 更新函数,函数引用此层

    3. 删除node_modules目录, 给函数代码包瘦身

    rm -rf nodejs nodejs.zip

    4. 部署更新函数

    ```

    关于创建和引用自定义层的更多信息,请参见创建自定义层和在函数中配置自定义层。https://help.aliyun.com/zh/fc/user-guide/configure-custom-layers-for-a-function#task-2000745

    2023-12-07 16:53:49
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于在部署时,函数计算没有正确地安装依赖导致的。您可以尝试以下方法来解决这个问题:

    1. 确保您的自定义层中包含了package.json文件,并且其中包含了项目所需的所有依赖。您可以使用npm pack命令将项目打包成一个tar.gz文件,然后将该文件上传到自定义层中。

    2. 在部署时,确保您已经选择了正确的自定义层。在函数计算控制台中,选择“自定义层”选项卡,然后选择您刚刚上传的自定义层。

    3. 在部署函数时,确保您已经设置了正确的运行时环境。在函数计算控制台中,选择“运行时”选项卡,然后选择与您的Node.js版本相匹配的运行时环境。

    4. 如果问题仍然存在,您可以尝试在本地环境中手动安装依赖,然后将安装好的依赖打包成tar.gz文件,再将其上传到自定义层中。这样,在部署时,函数计算就可以直接使用这些依赖了。

    2023-12-07 13:06:06
    赞同 展开评论 打赏
  • d0a20fba6b4879d4e81a7351083d4ec9.png
    ide里不生效的
    函数详情页 实例列表 可以登录到实例里
    此回答整理自钉群“阿里函数计算官网客户”

    2023-12-07 11:43:38
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载
    All in Serverless 阿里云核心产品全面升级 立即下载