https://github.com/jquery/node-amd-builder
jQuery Mobile download builder, a Node.js service
https://github.com/jquery/node-amd-builder
Last synced: 3 months ago
JSON representation
jQuery Mobile download builder, a Node.js service
- Host: GitHub
- URL: https://github.com/jquery/node-amd-builder
- Owner: jquery
- License: mit
- Created: 2011-12-30T01:49:29.000Z (about 14 years ago)
- Default Branch: main
- Last Pushed: 2023-07-18T23:28:07.000Z (over 2 years ago)
- Last Synced: 2024-09-28T20:22:30.322Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://jquerymobile.com/download-builder/
- Size: 415 KB
- Stars: 7
- Watchers: 8
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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