{"id":16760365,"url":"https://github.com/ryanve/universal","last_synced_at":"2025-04-10T17:37:13.116Z","repository":{"id":57386532,"uuid":"12848717","full_name":"ryanve/universal","owner":"ryanve","description":"JavaScript universal module template","archived":false,"fork":false,"pushed_at":"2015-08-24T04:11:49.000Z","size":448,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T18:56:28.058Z","etag":null,"topics":["template","umd"],"latest_commit_sha":null,"homepage":"https://www.npmjs.org/package/universal","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanve.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-15T16:44:52.000Z","updated_at":"2023-08-08T21:07:44.000Z","dependencies_parsed_at":"2022-09-05T12:20:44.644Z","dependency_job_id":null,"html_url":"https://github.com/ryanve/universal","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanve%2Funiversal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanve%2Funiversal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanve%2Funiversal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanve%2Funiversal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanve","download_url":"https://codeload.github.com/ryanve/universal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262040,"owners_count":21074236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["template","umd"],"created_at":"2024-10-13T04:23:16.191Z","updated_at":"2025-04-10T17:37:13.094Z","avatar_url":"https://github.com/ryanve.png","language":"JavaScript","readme":"# universal\n#### [`grunt-init`](https://github.com/gruntjs/grunt-init) template for making a universal JavaScript module\n\n## Features\n- \u003ca name=\"umd\"\u003e\u003c/a\u003e\u003cb\u003eU\u003c/b\u003eniversal \u003cb\u003eM\u003c/b\u003eodule \u003cb\u003eD\u003c/b\u003eefinition: [src/](root/src) uses a [UMD boilerplate](root/src/index.js) that works in CommonJS, [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD), and/or browsers. [UMD patterns](https://github.com/umdjs/umd) make code work in multiple contexts and with various build tools.\n- \u003ca name=\"grunt\"\u003e\u003c/a\u003e\u003cb\u003egrunt\u003c/b\u003e: The included [universal GruntFile](root/GruntFile.js) uses [these grunt plugins](root/package.json#L15-L20) to perform [common tasks](#grunt-tasks).\n- \u003ca name=\"aok\"\u003e\u003c/a\u003e\u003cb\u003eaok\u003c/b\u003e: [test/](root/test) contains a boilerplate for writing tests with [aok](https://github.com/ryanve/aok) or another test framework.\n\n## Usage\n\nYou'll need to have installed [git](http://git-scm.com/downloads), [node.js](http://nodejs.org/download/) (including npm), and [grunt-cli](http://gruntjs.com/getting-started) on your machine.\n\n#### [Install `grunt-init` and the template](http://gruntjs.com/project-scaffolding)\n\n```sh\n$ npm install -g grunt-init\n$ git clone https://github.com/ryanve/universal.git .grunt-init/universal\n```\n\n#### Setup a new project via the template\n\n```sh\n$ mkdir example # or clone a repo\n$ cd example\n$ grunt-init universal\n```\n\n#### Install [devDependencies](root/package.json#L15-L20) and then run [grunt tasks](#grunt)\n\n```sh\n$ npm install # install dependencies listed in local package.json\n```\n\n#### [grunt tasks](root/GruntFile.js#L58-L60)\n\nBuilds for distribution are created in the package root via `grunt` based on the [package.json](root/package.json#L10) [`.main`](https://www.npmjs.org/doc/json.html#main) field.\n\n```sh\n$ grunt jshint:all # jshint all applicable files\n$ grunt jshint:sub # jshint in all sub dirs\n$ grunt test # run tests\n$ grunt build # generate a build in the package root named by .main in package.json\n$ grunt # run the \"default\" task\n```\n\n## Resources\n- [\u003cb\u003ejshint\u003c/b\u003e options](http://www.jshint.com/docs/options)\n- [\u003cb\u003epackage.json\u003c/b\u003e documentation](https://www.npmjs.org/doc/json.html)\n- [\u003cb\u003esemver\u003c/b\u003e.org](http://semver.org)\n- example modules: [energy](https://github.com/ryanve/energy), [fm](https://github.com/ryanve/fm), [actual](https://github.com/ryanve/actual), [lap](https://github.com/ryanve/lap), [vibe](https://github.com/ryanve/vibe)\n- [Ask questions or report issues](../../issues)\n\n## License\nMIT","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanve%2Funiversal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanve%2Funiversal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanve%2Funiversal/lists"}