{"id":19481812,"url":"https://github.com/jasonshin/reason-vue","last_synced_at":"2025-06-11T12:38:06.100Z","repository":{"id":66096057,"uuid":"115257983","full_name":"JasonShin/reason-vue","owner":"JasonShin","description":"ReasonML and Vue","archived":false,"fork":false,"pushed_at":"2018-09-03T00:23:55.000Z","size":1373,"stargazers_count":53,"open_issues_count":2,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-25T15:39:58.777Z","etag":null,"topics":["reasonml","vue","webpack"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JasonShin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-24T11:17:02.000Z","updated_at":"2023-09-07T01:31:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"40955286-5dec-4164-9b7b-ad5b216adb99","html_url":"https://github.com/JasonShin/reason-vue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonShin%2Freason-vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonShin%2Freason-vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonShin%2Freason-vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonShin%2Freason-vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JasonShin","download_url":"https://codeload.github.com/JasonShin/reason-vue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonShin%2Freason-vue/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259265877,"owners_count":22831274,"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":["reasonml","vue","webpack"],"created_at":"2024-11-10T20:06:40.185Z","updated_at":"2025-06-11T12:38:06.092Z","avatar_url":"https://github.com/JasonShin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://imgur.com/6TpYmIv\"\u003e\u003cimg width=\"200\" src=\"https://i.imgur.com/6TpYmIv.png\" title=\"source: imgur.com\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# reason-vue\n\n\u003e Vue.js fueled by the power of reasonml\n\n## Current stage of development \u003cprototype\u003e\n\n### Immediate goal: MVP version\n\n1. ~~vue-loader under build/loaders/re-loader.js must be registered as a custom loader via webpack using \"resolveLoaders\"~~\n\n2. A simple Webpack build test that runs build and make sure it does not\nfail while compiling\n\n3. ~~vue-loader should read source passed in by vue-loader and parse it as raw JS using bsb-platform (bsb cli)~~\n\n4. Once above requirements are done, the loader should work with\nwebpack-dev-server and standard webpack build task\n\n5. Merge https://github.com/aweary/reason-vue/blob/master/src/vue.re into this project and use Vue binding inside main.re to initialise Vue instance\n\n### How does re-loader works right now and what is the plan?\n\n#### build\n\n  a) Clone project_root/src into __dirname/src-cloned\n\n  Why do we need this? By doing this, we do not clutter original src folder with .re and .bs.js mess\n\n  b) Extract \u003cscript type='re'\u003e sections from each vue file and write them into corresponding .bs.js files\n\n  c) Write arbitary bsconfig.json file into __dirname/bsconfig.json\n\n  d) Run `bsb -make-world` against __dirname/src-cloned\n\n  e) todo: what do you do now with generated .bs.js files?\n\n## How to test manually\n\n### 1. install dependencies\n`npm install` or `yarn`\n\n### 2. Trigger webpack build and test re-loader\n`npm run build` or `yarn build`\n\nIt will trigger `sync-files`, `bsb -make-world` internally\n\n\n## Decisions\n\n### 25 / 12 / 2017\n\n- We are going to rely on bsb-cli as strictly as possible\n\n- To allow bsb-cli to compile \u003cscript\u003es inside .vue files, we will\nextract all scripts into .vue.re files\n\n- Then bsb-cli will be able to compile .vue.re files located under\n`build/loaders/compiled` into js files\n\n- Once bsb compilation is complete without any errors, it will pipe the resulted files down to vue-loader for final bundling\n\n\n### 26 / 12 / 2017\n\n- Experiment what happens when you run bsb -make-world against raw .re files\n\n- Find out how and when to sync files in Webpack\n\n- Run BSB on synced folder\n\n- Iteratively resolve any dependencies and use addDependency\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonshin%2Freason-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonshin%2Freason-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonshin%2Freason-vue/lists"}