Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to install bower on Openshift

I am unable to install bower on Openshift. I keep on getting errors like

remote: npm ERR! Error: ENOENT, lstat '/var/lib/openshift/537xxxxcd/app-root/runtime/repo/node_modules/bower/node_modules/mout/array/intersection.js'[K
remote: npm ERR! If you need help, you may report this log at:[K
remote: npm ERR!     <http://github.com/isaacs/npm/issues>[K
remote: npm ERR! or email it to:[K
remote: npm ERR!     <[email protected]>[K

You can see full deployment logs https://s3.amazonaws.com/archive.travis-ci.org/jobs/26291843/log.txt [From travis here].

I tried several approaches: 1) with and without .bowerrc file

case:1

{
    "directory": "~/app-root/runtime/repo/public/libs"
    "storage": {
            "cache": "~/app-root/runtime/repo/node_modules/bower/cache",
            "completion": "~/app-root/runtime/repo/node_modules/bower/completion",
            "git": "~/app-root/runtime/repo/node_modules/bower/git_template"
    },
    "interactive": "false",
    "tmp":"~/app-root/runtime/repo/node_modules/bower/tmp",
    "cwd":"~/app-root/runtime/repo"
}

case:2

{
    "directory": "public libs"
}

Also, tried running following commands [In $HOME/app-root/runtime/repo] and tried npm install bower by SSH shell

 npm cache clear
 npm cache clean

Any help to resolve this would be great.

In case you want to look at my repo you can find it here: https://github.com/prasunsultania/demoblog

like image 375
prasun Avatar asked May 29 '14 16:05

prasun


2 Answers

Here is how I made use of bower on OpenShift using the node.js cartridge:

Prerequisites:

  • Usually you have installed Bower globally.
  • The git repo which you push to OpenShift must be readily configured for using Bower so that bower install from the root of the repo will do the job.

Necessary steps:

  1. Create the file .openshift/action_hooks/deploy
  2. Do chmod +x .openshift/action_hooks/deploy to make it executable BEFORE you add and commit it to your repo
  3. Add the following lines to the file:

#!/usr/bin/env bash

HOME=$HOME/app-root/runtime
cd ~/repo
npm install bower
./node_modules/.bin/bower install
  1. Add and commit the file to your git repo
  2. Push your git repo to OpenShift
like image 69
analog-nico Avatar answered Sep 17 '22 23:09

analog-nico


This suggests the following approach:

  1. Add dependency "bower": "latest" to package.json
  2. Add script for postinstall:

    "scripts": {  
        ... 
        "postinstall": "HOME=$OPENSHIFT_REPO_DIR bower install || bower install"  
    },
    
like image 41
dmigo Avatar answered Sep 20 '22 23:09

dmigo