Latest Socket ResearchMalicious Chrome Extension Performs Hidden Affiliate Hijacking.Details
Socket
Book a DemoInstallSign in
Socket

bower-nexus-resolver

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bower-nexus-resolver

Almost a Nexus Bower resolver

latest
Source
npmnpm
Version
0.4.0
Version published
Maintainers
1
Created
Source

bower-nexus-resolver

Important

If you are using NEXUS 3, please consider using the official bower-nexus3-resolver

Problematic

Nexus 2.x does not integrate Bower. Bower 1.5 offers pluggable resolvers which could make it possible.

The future Nexus behavior should mimic the default bower registry behavior.

For nexus to properly integrate Bower, it needs to respond some JSON info to this URL:

http://<domain>/nexus/content/repositories/<bower-repo>/packages/<package-name>

This JSON should be formed as (url below is a suggestion)

{
  "name" : "angular",
  "url" : "nexus://angular/angular"
}

Thus bower, thanks to the resolver, can recognise it's talking to a Nexus registry.

Today, Nexus doesn't implement this functionality, so we need to fake it with a fake server. Any server responding some JSON is fine. I recommend express.

You will also need to add in the .bowerrc a new entry nexusRegistry which is the URL of your Nexus registry. The default registry key is taken by your fake express server.

A typical .bowerrc would be

{
  "directory": "bower_components",
  "registry": "http://localhost:8082/nexus-bower/",
  "nexusRegistry": "http://localhost:8081/nexus/content/repositories/my-bower-repository/",
  "resolvers": [
    "bower-nexus-resolver"
  ]
}

Installation

npm install -g bower-nexus-resolver

In order to use Bower with Nexus you need:

  • bower - Bower version 1.5.0 and above: npm install -g bower
  • bower-nexus-resolver: npm install -g bower-nexus-resolver (if bower is installed globally)
  • express - To mimic default repo responses

Client Configuration

Edit your ~/.bowerrc and add Nexus Bower Resolver

{
  "resolvers": [
    "bower-nexus-resolver"
  ]
}

You will need an interface between Nexus and this resolver. Since Nexus doesn't implement bower registry features, you need to mimic it. To do so, create a node.js (or whatever else) server that respond a JSON like (example with angular):

{
  "name":"angular",
  "url":"nexus://angular/angular"
}

to a request like http://<YOUR_SERVER>/<SOME_REPO_NAME>/packages/<PACKAGE-NAME>.

Minic the bower registry response

This example depends on express to create the server.

var express = require('express'),
    json = require('express-json'),
    http = require('http'),

    config = {
      port: 8082,
      context: 'nexus-bower',
      prefix: 'nexus://'
    },

    app = express(),
    server = http.createServer(app).listen( process.env.PORT || config.port);

app.use( json() );

// wait for a request as: 
// http://<hostname>/<context>/packages/<package-name> 
// respond a simple JSON 
app.get('/' + config.context + '/packages/:name', function(req, res){
    res.json({
        "name": req.params.name,
        "url": config.prefix + req.params.name + '/' +req.params.name
    });
});

console.log("STARTUP:: Express Bower registry simulator server listening on port::", server.address().port, ", environment:: ", app.settings.env);

Once, done, edit your ~/.bowerrc and point the registry to your brand new server

{
  "registry": "`http://<YOUR_SERVER>/<SOME_REPO_NAME>/"
}

Then tell bower the real URL of your Nexus npm repository

{
  "nexusRegistry": "http://<domain>/nexus/content/repositories/<npm-repo>"
}

Nexus Configuring

NPM remote repository for bower components

  • Simply create a new npm repository
  • Run the node.js server that respond JSON

Usage

Use the client to install packages from Nexus, e.g. bower install bootstrap

Keywords

bower-resolver

FAQs

Package last updated on 14 Sep 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts