jsenv

0.0.1 • Public • Published

env

Load & execute JavaScript modules accross platforms

Node example

  • npm install -g jsenv
  • jsenv b
  • hello world is logged in the terminal

Browser example

  • mkdir test & cd test & jsenv init
  • open test/index.html in your browser
  • hello world is logged in the console

<Note that when running locally, ensure you are running from a local server or a browser with local XHR requests enabled. <If not you will get an error message.

<For Chrome you have to start chrome using the flag --allow-file-access-from-files

<In Firefox this requires navigating to about:config, entering security.fileuri.strict_origin_policy in the filter box and toggling the option to false.

Module format

A module is a javaScript source executed in a specific context, for example the following :

var a = include('a');
return 'hello ' + a;

Is equivalent to

// ensure a is loaded before executing the module source
ENV.load('a').then(function(){
    // create a module
    var module = ENV.createModule();
 
    // wrap module source in a function & call it
    (function(module, include){
        var a = include('a');
        return 'hello ' + a;
    }).call(ENV.global, module, module.include.bind(module));
});

Source location

Javascript sources can be fetched from different locations, for example the followings includes are valid.

include('foo');
include('./foo');
include('../../foo');
include('file:///C:/modules/foo');
include('http://my-domain.com/modules/foo');
include('https://external-domain.com/modules/foo');
include('github://user@repo/foo');

Installation

  • node : npm install -g jsenv
  • browser : <script src="modules/jsenv/index.js"></script>

ENV

This script installs a global variable called ENV

global

The global object in the environment

  • node : global
  • browser : window

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i jsenv

      Weekly Downloads

      2

      Version

      0.0.1

      License

      none

      Last publish

      Collaborators

      • dmail