Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用弹性beanstalk部署复杂的node.js项目大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道使用弹性beanstalk部署复杂node.js的最佳实践是什么,而不依赖于外部npm存储库的可用性(以及处理内部开发的软件包的凭据和私有管理git存储库的高可用性).

看起来有一种思想流派,它实际上将node_modules检入到实际部署的项目的源树中.

来源1:http://www.futurealoof.com/posts/nodemodules-in-git.html

来源2:http://eng.yammer.com/managing-node-js-dependencies-and-deployments-at-yammer/

所以听起来像是检查它们是正确的方法,但是对于某些已编译的软件包存在不同的二进制格式问题(在ma​​c上开发并部署到linuX)

我尝试过做yAMMer家伙建议(签入模块除了bin文件夹),但即使那时本地“npm rebuild”命令失败(它试图chmod在bin.in文件夹中不存在的bin文件夹中的东西)所以我甚至没有试图看看beanstalk认部署环境将对这样的存储库做什么.我假设它运行“npm install”(它什么都不做),但它会运行“npm rebuild”吗?

那么,再次,部署具有多个依赖项的复杂项目的最佳实践是什么?现在在Node / beanstalk世界中它一定是一个已经解决的问题,不是吗?

谢谢

解决方法

这是我的配置,可以完成您所说的内容.将其保存在.ebextensions文件夹中,您将被设置.我和 https://stackoverflow.com/a/23242623/34340中的优秀答案之@L_944_13@唯一区别是NPM_CONfig_UNSAFE_PERM = true线,我从 https://forums.aws.amazon.com/thread.jspa?messageID=534612获悉

packages:
  yum:
    git: []
    gcc: []
    make: []
    openssl-devel: []
    libxml2: []
    libxml2-devel: []

files:
  "/opt/elasticbeanstalk/env.vars" :
    mode: "000775"
    owner: root
    group: users
    content: |
      export HOME=/home/ec2-user # ADDED EXPORT COMMAND
      export NPM_CONfig_LOGLEVEL=error
      export NPM_CONfig_UNSAFE_PERM=true
      export NODE_PATH=`ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh" :
    mode: "000775"
    owner: root
    group: users
    content: |
      #!/bin/bash
      . /opt/elasticbeanstalk/env.vars
      function error_exit
      {
        eventHelper.py --msg "$1" --severity ERROR
        exit $2
      }

      #install not-installed yet app node_modules
      if [ ! -d "/var/node_modules" ]; then
        mkdir /var/node_modules ;
      fi
      if [ -d /tmp/deployment/application ]; then
        ln -s /var/node_modules /tmp/deployment/application/
      fi

      OUT=$([ -d "/tmp/deployment/application" ] && cd /tmp/deployment/application && $NODE_PATH/npm install 2>&1) || error_exit "Failed to run npm install.  $OUT" $?
      echo $OUT
  "/opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh" :
    mode: "000666"
    owner: root
    group: users
    content: |
       #no need to run npm install during configdeploy

大佬总结

以上是大佬教程为你收集整理的使用弹性beanstalk部署复杂的node.js项目全部内容,希望文章能够帮你解决使用弹性beanstalk部署复杂的node.js项目所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。