簡體   English   中英

處理node.js私有模塊依賴項的推薦方法是什么?

[英]What is the recommended way to handle node.js private module dependencies?

我目前正在開發一個部署在Elastic Beanstalk上的node.js應用程序。 它已經開始引用作為私有存儲庫托管在github上的私有模塊。 本地,如果我在我的package.json的依賴項部分中添加對它的引用,如下所示它工作正常。 我可以運行nom安裝,它下載模塊和應用程序工作沒有問題。

"ModuleName": "git+https://TOKEN:x-oauth-basic@github.com/OWNER/REPO_NAME.git"

但是,當我嘗試部署到Beanstalk時,它失敗並出現以下錯誤:

2014-04-04 00:14:09,188 [DEBUG] (1630 MainThread) [commandWrapper.py-60] [root commandWrapper main] Command result: {'status': 'FAILURE', 'results': [{'status': 'FAILURE', 'config_sets': ['Infra-EmbeddedPreBuild', 'Hook-PreAppDeploy', 'Infra-EmbeddedPostBuild'], 'returncode': 1, 'events': [{'msg': 'Failed to run npm install. Snapshot logs for more details.', 'timestamp': 1396570449, 'severity': 'ERROR'}, {'msg': 'Failed to run npm install. npm http GET https://registry.npmjs.org/express\nnpm ERR! not found: git\nnpm ERR! \nnpm ERR! Failed using git.\nnpm ERR! This is most likely not a problem with npm itself.\nnpm ERR! Please check if you have git installed and in your PATH.\n\nnpm ERR! System Linux 3.4.73-64.112.amzn1.x86_64\nnpm ERR! command "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/npm" "install"\nnpm ERR! cwd /tmp/deployment/appli', 'timestamp': 1396570449, 'severity': 'ERROR'}], 'msg': 'Error occurred during build: Command hooks failed\n'}], 'api_version': '1.0'}

通過閱讀我可以看出,似乎git沒有安裝在Beanstalk使用的默認linux AMI上。 我的問題是處理這個問題的最佳方法是什么。 目前我正在考慮以下兩個選項:

  1. 要么使用安裝了git的AMI,要么在引導期間以某種方式強制安裝。
  2. 創建一個構建過程,在部署到Beanstalk之前打包我的所有node_modules。

這兩個選項是否有意義,還是我應該考慮其他選擇? 是否有推薦的方法來處理Elastic Beanstalk或一般的節點生態系統?

您可以通過在.ebextensions文件夾中添加配置文件來確保在計算機上安裝了git。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

如果添加名為.ebextensions / packages.config的文件,其中包含以下內容:

#extra yum packages
packages:
  yum:
    git: []

這將在安裝應用程序之前在計算機上安裝git。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM