# node-amd-builder
**Repository Path**: mirrors_jquery/node-amd-builder
## Basic Information
- **Project Name**: node-amd-builder
- **Description**: jQuery Mobile download builder, a Node.js service
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-22
- **Last Updated**: 2026-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
amd-builder
==========
This project aims at providing a Node.s service to build bundles out of AMD projects in a Git repository. This was developed for building jQuery Mobile bundles.
Initial checkout as well as workspace creation have to be done manually.
* Frontend:
* API instance:
## API v1
### /v1/{project}/{repo}
Fetch the latest version of the repo from the default remote.
### /v1/{project}/{repo}/{ref}
Force checkout the ref into the {project}/{ref}/{repo} workspace if it exists.
### /v1/dependencies/{project}/{repo}/{ref}
Traces 1st level dependencies.
URL arguments are:
- ```baseUrl```: The baseUrl for module name to file resolution
- ```names```: An optional comma separated list of modules to include in the dependency map. If it's not specified, the service will compute the dependency map for all the .js files in the ```baseUrl``` directory.
### /v1/bundle/{project}/{repo}/{ref}/{name}?
```name``` is the name of the file generated it defaults to ```repo```.js
1. ```name``` has extension .js (default) calls require.js to build the js bundle
1. ```name``` has extension .css will resolve css dependencies through the ```//css:``` metadata and return a css bundle
1. ```name``` has extension .zip will do all of the above in both optimize and non-optimized and return a zip file with 4 files in it
Builds a bundle for this repository's ref
URL arguments are:
- ```baseUrl```: The baseUrl for module name to file resolution
- ```include```: A comma separated list of modules to include in the bundle
- ```exclude```: A comma separated list of modules to exclude from the bundle
- ```optimize```: true or false
### Setup an instance for your project
Perform all the following operations in the `node-amd-builder` main folder.
1. Clone a bare repo of your project:
```
mkdir repos
cd repos
git clone --bare git@github.com:yourname/yourproject.git
```
1. Now create the staging directory:
```
mkdir -p staging
```
1. Install the dependencies with ```npm install```
1. Start the service:
```
node server.js -r "$(pwd)/repos" -s "$(pwd)/staging"
```
1. Add a post_receive hook to the your GitHub repo pointing at ```http://instance:3000/post_receive```
### Setup an instance for jQuery Migrate
Perform all the following operations in the `node-amd-builder` main folder. Make sure you use Node.js v14.14.0 or higher.
1. Install the dependencies with `npm install`
1. Invoke:
```
scripts/setup-mobile.js
```
1. Start the service:
```
node server.js -r "$(pwd)/repos" -s "$(pwd)/staging"
```
Invoke just `node server.js --help` to see other available options.
1. ~~Add a post_receive hook to the your GitHub repo pointing at `http://instance:3000/post_receive`~~ (only needed if you don't checkout tags manually as described above)
## Author
* Ghislain Seguin - [@gseguin](http://twitter.com/gseguin)
[](http://coderwall.com/ghislain)
## Credits
Thanks to:
* [Jive Software](https://jivesoftware.com) - my employer - for letting me work on cool projects like this