npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mimosa-server

v1.7.0

Published

Server module for Mimosa browser development workflow tool

Downloads

147

Readme

mimosa-server

This is Mimosa's server module. It contains both a hosted-server as well as the ability to invoke existing node servers.

  • For more information regarding Mimosa, see http://mimosa.io

Usage

Add 'server' to your list of modules. That's all! Mimosa will install the module for you when you start mimosa watch or mimosa build.

--server flag

mimosa-server will only execute when the --server flag is used with mimosa watch. The --server flag is an indication to this module that a server needs to be started once Mimosa has processed all of the project's assets.

Functionality

mimosa-server's job is to start a server during mimosa watch. What server it starts is determined by how this module is configured. mimosa-server is capable of starting either a server (Express) embedded within this module, and it is capable of starting your node.js based server.

Embedded Server

mimosa-server comes bundled with its own Express server. If server.defaultServer.enabled is set to true in the mimosa-config, then when mimosa watch is run with the --server flag, mimosa-server will run its embedded server. When running mimosa-server's Express, all of the settings in the server portion of the mimosa-config become very important. See the module configuration to learn more.

mimosa-server Express will do a few things in addition to serving up an application. If you are using the mimosa-live-reload module, and assuming liveReload.enabled is set to true (default), mimosa-live reload will be engaged.

mimosa-server will also serve static assets gzipped.

View Routing

How mimosa-server routes a project's paths depends on the setting for server.defaultServer.onePager.

When onePager is set to true the embedded Express server is configured to automatically route every request to the application's index view that doesn't result in an asset being returned. For instance given a URL of /account/1/item/2/comment/4 mimosa-server's embedded server will route the request to the index view and leave the handling of the complex URL to the client code.

When onePager is set to false, Mimosa will assume simple routes for the application. url:3000/ will still route to the index view. But url:3000/foo/ will route to the foo view as will url:3000/foo/bar/baz.

Hooking Into Your node.js Server

Mimosa can start a node.js based server. If server.defaultServer.enabled is set to false, Mimosa will look for a piece of node.js code located at server.path and execute the startServer function of that code (so that function must be exported). That function will be passed the entire resolved and enriched mimosa-config.

The startServer function is also passed a callback that must be executed for Mimosa to continue through its workflows. If using mimosa-live-reload, the callback should be provided node's http server object as a first parameter. That happens to be the object returned by, for instance, Express's app.listen() function or Hapi's server.listener property. If socket.io and live-reload are being used, then the callback should be provided the socket.io object as a second parameter.

Server Views

server.views.compileWith can be configured to use one of the following available templating libraries, and each library has a default extension. The server.views.compileWith values are listed below next to the name of each technology. The default extensions are listed as well.

  • Jade .jade
  • EJS .ejs
  • Hogan .hjs
  • Handlebars .hbs
  • Dust .dust
  • HTML .html

Default Config

server: {
  defaultServer: {
    enabled: false,
    onePager: false
  },
  path: 'server.js',
  transpiler: null,  
  port: 3000,
  base: '',
  views: {
    compileWith: 'jade',
    extension: 'jade',
    path: 'views',
    options: {}
  }
}

server.defaultServer.enabled boolean

Determines whether Mimosa will start a default server or attempt to use a server in the project. When set to true, mimosa-server will run an embedded Express.

server.defaultServer.onePager boolean

Whether a project is a one or multi page application. This effects how mimosa-server's embedded server handles routing. See above for more details on the embedded server and routing.

server.path string

When defaultServer.enabled is set to false, server.path is the path to the project's server code. The path can be relative to the root of the application or absolute. The server code at server.path must export a startServer function. Mimosa will pass that method a copy of the mimosa-config. startServer will also be passed a callback that it must execute when complete. Both 'server.coffee' and 'server.js' are valid defaults.

server.transpiler transpiler library

If your application is written in a language that needs transpiling, require('') the transpiler here. For instance, require('coffee-script').

server.port number

The port on which mimosa-server starts the server.

server.base string

The base path of the application. By default this is set to blank, so the application is served up at http://localhost:3000, but set base to app and the application would be served at http://localhost:3000/app.

server.views.compileWith string

The language/library of the server views. Valid values: jade, hogan, ejs, dust and handlebars.

server.views.extension string

Extension of server views.

server.views.path string

The path to server views. The path can be either absolute or relative. If server.defaultServer.enabled is set to true, server.views.path is relative to the root of the project. If server.defaultServer.enabled is set to false, server.views.path is relative to server.path.

server.views.options object

Options to pass to any views being served by Mimosa's default server.