GithubHelp home page GithubHelp logo

inject's Introduction

Welcome

Inject (Apache Software License 2.0) is a revolutionary way to manage your dependencies in a Library Agnostic way. Some of its major features include:

  • CommonJS Compliance in the Browser (exports.*)
  • Cross domain retrieval of files (via easyXDM)
  • localStorage (load a module once)
  • Frustratingly Simple

Getting Started With Inject

This page is designed to get you up and running with the latest version of Inject. For greater detail, there is an Advanced Usage section, and a guide to the API.

Download Inject

The latest version of inject is always available via the source repository at http://www.injectjs.com/download/. The most recent version is usually at the top, and inside is the required JS and optional HTML files. Copy them to your own server.

As of 0.4.2, you can also get Inject as a Bower package via bower install inject. Our Bower repository can be found here.

Adding Inject to Your Page

This walkthrough is assuming you're using a directory called js which contains all of your javascript, possibly even this file. It also assumes inside of the js directory is a modules directory which will contain all of your modules. Your directory layout might look like the following:

|-index.html
|-relay.html (optional)
|-js
    |-inject.js
    |-modules
      |-math.js
      |-increment.js
      |-program.js

The location of the modules directory does not need to be under the inject.js file, but it's common practice to group files of similar types together such as JavaScript.

Starting Your JavaScript

To use inject, place the following script tags into the <head> of your document

<script type="text/javascript" src="inject.js"></script>
<script type="text/javascript">
  Inject.setModuleRoot("/js/modules");
  require.run("program");
</script>
  • Inject.setModuleRoot is the location of ALL your JS modules. Based on the directory structure above, they are located in the js/modules directory.
  • require.run executes your main entry point, whatever it may be. Given the above directory structure, it will run the program.js file in your module root (from require.setModuleRoot). The .js is added automatically.

Some Quick Configs

Here's some common configuration options you're going to want for Inject

// Set the "root" where all your modules can be found
// you can use an http:// path or just /path/to/modules like above
Inject.setModuleRoot("path");

// Specify how long files should be in localStorage (in minutes)
// or 0 for never, which is great for development
Inject.setExpires(integerValue);

// configure "cross domain" support. You need to put "relay.swf" and "relay.html"
// on your remote server for this to work
Inject.setModuleRoot("http://example-cdn.com/modules");
Inject.setCrossDomain({
  relayHtml: "http://example-cdn.com/relay.html",
});

Writing Some Modules

When you're ready to write your own modules, have a look at the CommonJS Module Examples to get started.

Building From Source

We have a whole section on building from source. Building From Source has all the juicy details.

Next Steps

From here, you can...

On The Shoulders of Giants

Inject couldn't be as great as it is without these other rockstar libraries:

  • easyXDM: Cross Domain Communication
  • lscache: LocalStorage Cache Provider
  • link.js: dependency extraction (from their src/Library/link.js)
  • GoWithTheFlow.js: simple flow control
  • (and a whole lot of npm related things for development)

inject's People

Contributors

apmadhani avatar eoneill avatar fsimeon avatar gvsboy avatar jakobo avatar jimgskoop avatar kate2753 avatar mattpowell avatar

Watchers

 avatar  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.