Giter Site home page Giter Site logo

sting's Introduction

Sting

It's a deprecated project. Plese, consider using https://github.com/GeographicaGS/genesis

#About

Sting is a multilanguage builder for Backbone Applicactions.

Input : A bunch of underscore templates, JS files and CSS/LESS files.

Output:

	/css/main.min.css
	/en
		index.html 
		js/main.min.js

	/es 	
		index.html 
		js/main.min.js

Install

npm install sting-builder

Getting started

var sting = require('sting-builder'),
    deps = require('./deps.js').deps;

var debug = (process.argv.length == 3 && process.argv[2]=='debug') ? true : false;
    
sting.make({
  'debug' : debug,
  'deps' : deps,
  'outputPath' : '/usr/share/nginx/html',
  // Languages
  'langs' : [],    
  'outSourceMap' :  debug ? 'main.min.map' : null
});

Split application (web) loading process

If you wish to split the application (web) loading process in one main block ('main.js'), which it load the main libraries (files) and, after some conditions, to load one third block, with the other libraries (files) of your application?, you must follow the next steps:

1. You must indicate where the main block ends ('main.js')

Edit the file deps.js and you must put the tag "@finish-main-block" next to the name of the file that we want to be the last one to be included in the block main ('main.js'), from here, the rest of the files will belong to the block of third ('third.js)

deps.JS = [
  ...
  // Namespace
  srcJS + 'Namespace.js',

  // app
  srcJS + 'App.js',

  // Utils
  srcJS + 'Utils.js@finish-main-block'
  ...
];

2. Load the remaining libraries ('third.js')

After the previous point, our application will correctly load the block main, but the block of third will require an additional function to load the remaining libraries (files).

function loadScripts() {
 if (document) {
    var blockedScripts = Array.from(document.getElementsByTagName('SCRIPT'))
      .filter( function(script) {
        return script.getAttribute('src') && script.getAttribute('type') === 'javascript/blocked'
      });

    for (var i = 0; i < blockedScripts.length; i++) {
        var currentScript = document.createElement('script');

        currentScript.src = blockedScripts[i].getAttribute('src');
        currentScript.type = 'text/javascript';
        document.head.appendChild(currentScript);
      }
    }
  }
};

Deberá implementar la función anterior (o una con igual fin) en algún lugar de su aplicación y ejecutarla en el punto en el que se desee cargar el resto de sus librerias (ficheros).

You must implement the previous function (or one with the same purpose) somewhere in your application and execute it at the point where you want to load the remaining libraries (files).

More information

For more info check the samples folder.

We need to improve the doc and the samples, in the meantime, if you want more information email us at [email protected]

sting's People

Contributors

neokore avatar limtrack avatar cayetanobv avatar padawannn avatar

Watchers

Francisco Hidalgo avatar Eduardo García avatar Dani Ramírez avatar James Cloos avatar Manuel Alvarez avatar  avatar  avatar Rafael Arellano avatar Dani Arlandis avatar Joaquin Perez Barroso avatar  avatar Eduardo avatar  avatar Victor M. Varela avatar Paula Juliá avatar Isabel avatar Janto Lima avatar José Luis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.