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

systemjs-server

v1.1.73

Published

A light express server which allows for simpler systemjs configuration

Downloads

6

Readme

SystemJS Server

Running a JavaScript file under NodeJS is easy. Just invoke node + a path to a JavaScript file

However, running the same file under the browser is a little nightmare. In case the file is written according to the CommonJS specification then probably it uses the "require" syntax which is not supported under latest browser

That's why we have module loaders like WebPack and SystemJS. The thing is that both of them are not easy to configure

If you are building demos applications or just looking for a way to easily run CommonJS modules inside the browser then you should consider the systemjs-server

Let's assume you hold a JavaScript file named calc.js and want to execute it under the browser

Your project does not contain any index.html file and for sure you are not interested learning how to work with complex module loaders like WebPack and SystemJS

So, first install systemjs-server

npm install systemjs-server

Then execute the following command

node_modules/.bin/sjs calc.js

systemjs-server automatically creates a web server and opens a new browser window. The web server returns a default HTML file which loads your calc.js file and any other dependencies according to the CommonJS syntax

In case you are OK with installing global packages then you can execute

npm install -g systemjs-server

And then, instead of specifying the long path of sjs script you can just execute

sjs calc.js

In case the JavaScript to be executed has a common name like

  • main.js
  • app.js
  • app/main.js

Then you don't even need to specify the file name. Just execute

sjs

And systemjs-server automatically looks for one of the "conventional" scripts. If no file was found a message is printed to the browser's console

How does it work

systemjs-server spawns a web server and a browser. The web server searches the file system and looks for interesting files like main.js, system.src.js and others. When an HTTP request arrives for the root URL / the web server returns a "pre-defined" index.html and populates it with the configuration that was deducted during the file system search. The returned HTML is loaded into the browser and the systemjs-server client side script is loaded too and is responsible for importing the main.js file using SystemJS module loader

More Options

You can use your own HTML file

License

MIT