z0mt3c / hapi-swaggered-ui

An easy swagger-ui drop-in plugin for hapi (to be used with hapi-swaggered).
39 stars 31 forks source link

Error: Plugin hapi-swaggered-ui missing dependency vision #24

Closed krohrsb closed 8 years ago

krohrsb commented 8 years ago

Not sure why, as I see you registering the dependency with server.dependency.....

/dev/project/node_modules/hapi/node_modules/hoek/lib/index.js:731
    throw new Error(msgs.join(' ') || 'Unknown error');
          ^
Error: Plugin hapi-swaggered-ui missing dependency vision in connection: http://local:8080
    at Object.exports.assert (/dev/project/node_modules/hapi/node_modules/hoek/lib/index.js:731:11)
    at internals.Server.initialize (/dev/project/node_modules/hapi/lib/server.js:175:22)
    at internals.Server.start (/dev/project/node_modules/hapi/lib/server.js:147:10)
    at /dev/project/app.js:17:12
    at /dev/project/node_modules/glue/lib/index.js:122:9
    at done (/dev/project/node_modules/items/lib/index.js:30:25)
    at done (/dev/project/node_modules/items/lib/index.js:30:25)
    at /dev/project/node_modules/hapi/lib/plugin.js:261:16
    at done (/dev/project/node_modules/hapi/node_modules/items/lib/index.js:30:25)
    at Object.exports.register (/dev/project/node_modules/hapi-swaggered-ui/lib/index.js:194:10)

For what its worth. I got around the issue by adding vision to my application dependencies itself.

felansu commented 8 years ago

+1

This is my config:

var hapi = require('hapi');
var server = new hapi.Server();
var intert = require('inert');
var routes = require('./routes');

server.connection({port: 3000});

server.register(require('hapi-auth-cookie'), function (err) {

    server.auth.strategy('session', 'cookie', {
        password: 'secret',
        cookie: 'sid-example',
        redirectTo: '/login',
        isSecure: false
    });
});

swaggerOptions = {
    basePath: 'http://localhost:8080/swagger/swagger.json'
};

server.register({
    register: require('hapi-swagger'),
    options: swaggerOptions
}, function (err) {
    if (err) {
        server.log(['error'], 'Plugin "hapi-swagger" load error: ' + err)
    }else{
        server.log(['start'], 'Swagger interface loaded')
    }
});

server.register(intert, function () {
});

server.route(routes);

server.start(function () {
    console.log('Servidor rodando em ', server.info.uri);
});
z0mt3c commented 8 years ago

The examples shows that you should register "inert" and "vision" on your own upfront.

See https://github.com/hapijs/hapi/blob/master/API.md#serverdependencydependencies-after

felansu commented 8 years ago

@z0mt3c thanks