{"id":19636567,"url":"https://github.com/mizchi/uniroll","last_synced_at":"2025-04-28T08:32:45.721Z","repository":{"id":39007577,"uuid":"224408305","full_name":"mizchi/uniroll","owner":"mizchi","description":"Opinionated universal frontend bundler in browser","archived":false,"fork":false,"pushed_at":"2023-01-07T12:12:52.000Z","size":3738,"stargazers_count":112,"open_issues_count":70,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-11-07T19:20:24.963Z","etag":null,"topics":["compiler","rollup","uniroll","universal-javascript"],"latest_commit_sha":null,"homepage":"https://focused-raman-3ce115.netlify.com/","language":"TypeScript","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/mizchi.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":"2019-11-27T10:48:00.000Z","updated_at":"2023-08-28T07:57:13.000Z","dependencies_parsed_at":"2023-02-07T03:15:59.054Z","dependency_job_id":null,"html_url":"https://github.com/mizchi/uniroll","commit_stats":null,"previous_names":[],"tags_count":72,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizchi%2Funiroll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizchi%2Funiroll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizchi%2Funiroll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizchi%2Funiroll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mizchi","download_url":"https://codeload.github.com/mizchi/uniroll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224103123,"owners_count":17256307,"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":["compiler","rollup","uniroll","universal-javascript"],"created_at":"2024-11-11T12:29:50.322Z","updated_at":"2024-11-11T12:29:51.403Z","avatar_url":"https://github.com/mizchi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# uniroll\n\nOpinionated frontend compiler in browser.\n\n- Bundle in browser for rapid prototyping\n- Resolve modules by `https://esm.sh`\n- Transpile `typescript`\n\n## How it works\n\n- Create virtual fs by `rollup-plugin-virtual-fs`\n- Load npm modules via `rollup-plugin-http-resolve`\n- Compile with `typescript`\n- Compile with `rollup`\n\n## Run in browser\n\n```\nnpm install uniroll typescript rollup --save\n```\n\n```js\nimport { bundle } from \"uniroll\";\nconst files = {\n  \"/foo.tsx\": \"export default 1\",\n  \"/index.tsx\": \"import foo from 'foo';\\nconsole.log('hello', foo)\",\n};\nconst bundled = await bundle({\n  files,\n  input: \"/index.tsx\",\n});\nconst out = await bundled.generate({ format: \"esm\" });\nconsole.log(out.output[0]);\n```\n\n## CLI\n\nRun compiler with same logics.\n\n```bash\n$ npm install uniroll-tools -g\n$ uniroll foo.js -o out.js\n```\n\nTODO: Options Documentation\n\n## How to develop\n\n```bash\n# If you are not on MacOS try running `yarn --ignore-platform` instead of `yarn install`.\nyarn install\nyarn build\nyarn test\n```\n\n## How to build your uniroll\n\n```bash\nyarn add uniroll typescript rollup\n# If you want to use uniroll-svelte, add svelte\n```\n\nAdd this wepback rules\n\n```js\nmodule.exports = {\n  // ...\n  module: {\n    rules: [\n      // ...\n      {\n        test: /\\.js$/,\n        include: /pluginutils/, // for @rollup/pluginutils\n        type: \"javascript/auto\",\n      },\n    ],\n  },\n};\n```\n\n## ChangeLog\n\n### v3\n\n- Drop `rollup-plugin-memfs` and add new `rollup-plugin-virtual-fs`\n- Use `https://esm.sh`\n\n### v2\n\n- Use `typescript` compiler instead of `@babel/core` and dorp babel plugins.\n- No more `useInMemory: true` option. Just take `fs` or `memfs`.\n- Drop `package.json` reading. Use `importmaps` [WICG/import\\-maps: How to control the behavior of JavaScript imports](https://github.com/WICG/import-maps)\n\n## TODO\n\n- Documentation\n- CSS Loader / Optimizer\n- Svelte usages\n- include tslib\n\n## LICENSE\n\nMIT\n\n- Kotaro Chikuba ~ [@mizchi](https://twitter.com/mizchi)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizchi%2Funiroll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmizchi%2Funiroll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizchi%2Funiroll/lists"}