ProductPromotion
Logo

Java.Script

made by https://0x3d.site

GitHub - caolan/jam: JavaScript package manager - using a browser-focused and RequireJS compatible repository
JavaScript package manager - using a browser-focused and RequireJS compatible repository - caolan/jam
Visit Site

GitHub - caolan/jam: JavaScript package manager - using a browser-focused and RequireJS compatible repository

GitHub - caolan/jam: JavaScript package manager - using a browser-focused and RequireJS compatible repository

****NOTE: this project is no longer active and not recommended for use. It is left here for reference. ****

Jam was created at a time before Bower and provided a (still to this day) very nice installation workflow which meant you could 'jam install jquery', then immediately 'require("jquery")' in your application. No manual bundling or build step (e.g. browserify, webpack) required. This was thanks in large part to the power and flexibility of the AMD format.

Since it's creation, NPM has set it's sights more firmly on the browser space, and the popularity of the AMD module format is waning. Jam never really got enough traction to compete. Thanks to everone that helped out and gave it a try.

If you want to try hosting your own Jam repository, see the repositories section below. The public Jam repository is now retired.


Jam

For front-end developers who crave maintainable assets, Jam is a package manager for JavaScript. Unlike other repositories, we put the browser first.

  • Manage dependencies - Using a stack of script tags isn't the most maintainable way of managing dependencies, with Jam packages and loaders like RequireJS you get automatic dependency resolution.

  • Fast and modular - Achieve faster load times with asynchronous loading and the ability to optimize downloads. JavaScript modules and packages provide properly namespaced and more modular code.

  • Use with existing stack - Jam manages only your front-end assets, the rest of your app can be written in your favourite language or framework. Node.js tools can use the repository directly with the Jam API.

  • Custom builds - No more configuring custom builds of popular libraries. Now, every build can be optimized automatically depending on the parts you use, and additional components can always be loaded later.

  • Focus on size - Installing multiple versions works great on the server, but client-side we don't want five versions of jQuery! Jam can use powerful dependency resolution to find a working set of packages using only a single version of each.

  • 100% browser - Every package you see here will work in the browser and play nicely with module loaders like RequireJS. We're not hijacking an existing repository, we're creating a 100% browser-focused community!

Visit the Jam website

Example usage

$ jam install jquery
<script src="jam/require.js"></script>

<script>
    require(['jquery'], function ($) {
        ...
    });
</script>

Learn more...

Browser packages in package.json

You can also define your browser dependencies in a project-level package.json file. If you use Node.js, this format will already familiar to you, and the Jam dependencies can live alongside your NPM dependencies. It's also possible to define custom install paths and baseUrls, as well as hand in any requirejs configuration here:

{
    "name": "my-project",
    "version": "0.0.1",
    "description": "My example project",
    "jam": {
        "baseUrl": "public",
        "packageDir": "public/vendor",
        "dependencies": {
            "jquery": "1.7.x",
            "underscore": null
        },
        "config": {
          "paths": {
            "templates": "public/templates"
          }
        }
    }
}

Installation

# npm install -g jamjs

Requires node.js

Settings

You can customize Jam by creating a .jamrc file in your home directory.

.jamrc

repositories

An array with Jam repositiories. Jam uses http://jamjs.org/repository by default, but it's possible to create a local, e.g. corporate, repository.

exports.repositories = [
    "http://mycorporation.com:5984/repository/",
    "http://jamjs.org/repository"
];

Repositories are in preference-order, so packages from repositories earlier in the list will be preferred over packages in repositories later in the list. However, when no package version is specified, the highest version number will be installed (even if that's not from the earliest repository).

You can add custom search URLs to repositories too:

exports.repositories = [
    {
        url: "http://mycorporation.com:5984/repository/",
        search: "http://db.com:5984/_fti/key/_design/search/something"
    },
    "http://jamjs.org/repository"
];

If your local repository doesn't implement full text search (e.g. you don't want to install couchdb lucene), you can disable searching functionality for that repository, otherwise jam search would report an error:

exports.repositories = [
    {
        url: "http://mycorporation.com:5984/repository/",
        search: false
    },
    "http://jamjs.org/repository"
];

See the section below on running your own repository.

package_dir

Sets the default package installation directory (normally uses ./jam). This is best customized in your project-level package.json file, to ensure other developers also install to the correct location.

exports.package_dir = 'libs';

Running the tests

Jam includes two test suites, unit tests (in test/unit) and integration tests (in test/integration). The unit tests are easy to run by running the test/unit.sh script, or test\unit.bat on Windows. The integration tests first require you to set up a CouchDB instance to test against (you can get a free account at IrisCouch if you don't want to install CouchDB). You then need to set the JAM_TEST_DB environment variable to point to a CouchDB database URL for testing:

Linux

export JAM_TEST_DB=http://user:password@localhost:5984/jamtest

Windows

set JAM_TEST_DB=http://user:password@localhost:5984/jamtest

Warning: All data in the test database will be deleted!

You can then run the integration tests using test/integration.sh or test\integration.bat. To run BOTH the unit and integration tests use test/all.sh or test\all.bat.

Running your own private repository or mirror

  1. Install couchdb

Mac OS X:

1. Install [Homebrew](http://mxcl.github.com/homebrew/).
2. 
brew install couchdb

Ubuntu:

apt-get install couchdb
  1. Configure your database
curl -X POST http://127.0.0.1:5984/_replicate -d '{
    "source":"http://jamjs.org/repository",
    "target":"http://localhost:5984/repository",
    "continuous":true,
    "doc_ids":["_design/jam-packages"]
    }' -H "Content-Type: application/json"

To create a mirror:

curl -X POST http://127.0.0.1:5984/_replicate -d '{
    "source":"http://jamjs.org/repository",
    "target":"repository",
    "continuous":true,
    "create_target":true
    }' -H "Content-Type: application/json"

To create an empty, private repository:

curl -X PUT http://127.0.0.1:5984/repository
  1. Edit your .jamrc file to use your new repository:
exports.repositories = [
    {
        url: "http://localhost:5984/repository",
        search: false
    },
    "http://jamjs.org/repository"
];

Adding search

  1. Install couchdb-lucene
  2. Restart couchdb.
  3. Edit your .jamrc file to allow searching on your repository:
exports.repositories = [
    {
        url: "http://localhost:5984/repository",
        search: "http://localhost:5984/_fti/local/repository/_design/jam-packages/packages/"
    },
    "http://jamjs.org/repository"
];

Publishing packages to your private repository

jam publish --repository http://localhost:5984/repository

More documentation

To learn how to create and publish packages etc, and for more info on using packages, consult the Jam documentation website.

Links

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory