Nanometer Process Machine

    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

    Keywords

    none

    Install

    npm i jsenv

    DownloadsWeekly Downloads

    2

    Version

    0.0.1

    License

    none

    Last publish

    Collaborators

    • dmail