{"id":19658129,"url":"https://github.com/cdaringe/ionizer","last_synced_at":"2026-06-12T19:33:01.583Z","repository":{"id":57276218,"uuid":"44626972","full_name":"cdaringe/ionizer","owner":"cdaringe","description":"Build electron compatible packages, while developing in any nodejs environment","archived":false,"fork":false,"pushed_at":"2023-12-15T20:27:06.000Z","size":637,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T01:21:55.427Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cdaringe.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-20T18:34:37.000Z","updated_at":"2016-04-23T05:05:43.000Z","dependencies_parsed_at":"2024-11-11T15:38:44.905Z","dependency_job_id":"1ba74ca9-9a1d-42e1-a4db-785c7607966c","html_url":"https://github.com/cdaringe/ionizer","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/cdaringe/ionizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdaringe%2Fionizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdaringe%2Fionizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdaringe%2Fionizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdaringe%2Fionizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdaringe","download_url":"https://codeload.github.com/cdaringe/ionizer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdaringe%2Fionizer/sbom","scorecard":{"id":269563,"data":{"date":"2025-08-11","repo":{"name":"github.com/cdaringe/ionizer","commit":"3c86397548aa3fe87457edf49bc7dd4760335680"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/23 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T12:59:32.447Z","repository_id":57276218,"created_at":"2025-08-17T12:59:32.447Z","updated_at":"2025-08-17T12:59:32.447Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34260309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-11T15:36:12.266Z","updated_at":"2026-06-12T19:33:01.565Z","avatar_url":"https://github.com/cdaringe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ionizer\n\nBuild [electron](atom/electron) compatible modules while working in any version of nodejs.\n\n\u003cimg width=\"100px\" height=\"100px\" src=\"img/ionizer_rounded.png\"\u003e\u003c/img\u003e\n\n[ ![Codeship Status for cdaringe/ionizer](https://codeship.com/projects/f1c1b6b0-7bb1-0133-ed8b-3a9edbaef368/status?branch=master)](https://codeship.com/projects/119677)\n\n## about\nyour system's version of `nodejs` most likely does _not_ match the version\nthat [electron](atom/electron) runs behind the scenes.  this can be problematic. dependencies commonly execute build process\nwhilst installing them.  perhaps you have seen `node-gyp` build [addons](https://nodejs.org/api/addons.html) when installing something via npm?\nFor example, suppose\n\n- you are developing on nodejs `0.12.7`\n- your electron application under the hood runs iojs `2.5.0`\n- you install `npm install --save node-sass`\n- you `require('node-sass')` into you electron application and run it...\n- YOUR APP CRASHES! :(  `node-sass` was built for `0.12.7 (module version 14)`, not for `2.5.0 (module version 44)`\n- you run `ionizer -q`, which rebuilds your dependencies to work with your electron version.\n- reload your app.  all is zen!\n\n## installation\nThis package is hosted on [npm](npm/npm).  See the [ionizer package page](https://www.npmjs.com/package/ionizer).\n\n```sh\nnpm install --save-dev ionizer\n```\n\n## basic usage\ni recommend installing `electron-prebuilt` into your package for no-brainer rebuilds.\n`ionizer` first tests for `electron-prebuilt` in your project and will rebuild with that if present (and if you don't explicitly specify an electron-path). `npm install --save electron-prebuilt`.\n\nwhenever you install a new npm package into your electron project, rerun ionizer:\n\n```json2\n// package.json\n{\n    ...\n    scripts: {\n        \"postinstall\": \"ionizer -q\", // or ...\n        \"postinstall\": \"ionizer -q --limit=leveldown,some-pkg\",\n    }\n}\n```\n\nif you want to fine tune your rebuilds, try a rebuild script!\n\n```js\n// .ionizer.js\n// advanced rebuilding (see simpler package.json example above)\nvar fs = require('fs');\nvar path = require('path');\nvar pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'));\nvar _ = require('lodash');\nvar electronVersion = _.get(pkg, 'dependencies.electron-prebuilt') || _.get(pkg, 'electron-version');\nelectronVersion = electronVersion.match(/\\d+\\.\\d+\\.\\d+$/)[0];\nvar ionizer = require('ionizer');\nionizer.setLogLevel('verbose');\n\n// test if rebuilding necessary\nionizer.shouldRebuild('/Users/username/ ... /Electron'); // electron path, see node_modules/electron-prebuilt/path.txt\n.then(function(rslt) {\n    if (!rslt.shouldRebuild) { process.exit(0); }\n    return ionizer.installNodeHeaders(electronVersion)\n    .then(function initRebuild() {\n        return ionizer.rebuild({\n            electronVersion: electronVersion,\n            modulesDir: './node_modules',\n            quick: true,\n            ignore: ['webpack', 'babel', 'react', 'redux', 'pouchy']\n        });\n    });\n})\n.catch(function(err) {\n    console.error(err.message);\n});\n\n```\n\n## options\nas demonstrated above, this package supports two modes:\n\n1. cli mode\n1. package mode\n\nthe API when consumed as a package does not have a full doc set yet--please see the example above.  the options to `ionizer` are the same to the cli as they are to `ionizer.rebuild` in the library.  those may be found **[here](https://github.com/cdaringe/ionizer/blob/master/lib/cli.js#L21)**.\n\n## note\n\n### beta\nionizer works, but it's in beta.  despite the API not being published formally now,\nit _will_ change in 2.0.0.  expect at least new method names.  the CLI options are not anticipated to change @2.0.0.\n\n### fork'n'h4ck3d\nionizer was initially a fork off of [electron-rebuild](electronjs/electronjs-rebuild), so make sure to give those guys a shout out.  this package was created to improve performance, development experience, and add some features.  some dependencies _will build with ionizer_ that _won't build with electron-rebuild_, although windows support is still lacking in ionizer (help requested for add windows support to [squish-squash](https://github.com/cdaringe/squish-squash)).  notable differences between the packages are:\n\n1. more reliable rebuilds.  ionizer runs the _actual_ electron node process when rebuilding packages\n1. faster rebuilds.  rather than rebuilding your entire _node_modules_ folder, you can limit the builds to certain packages.  and keep a record/cache of those packages that have already been rebuilt (so as to not redundantly rebuild them)\n1. pure es5. no es6 compilation required for backwards compatibility\n    1. improves testing, building, \u0026 distribution speed\n1. faster tests.  network tests are mocked out. once basic resources are cached.\n\n# todo\n- [ ] windows support (`squish-squash`)\n- [ ] add doc blocks and gen API docs\n- [ ] fix test ECONN issue for connecting to local file server\n- [ ] support building against global electron (vs. electron-prebuilt or loose binary)\n- [ ] general API tidy!\n\n# changelog\n1.x - release\n2.0.0 - drop `--verbose` in favor of `--log-level=[winston-log-levels]`\n\n[cdaringe.com](http://www.cdaringe.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdaringe%2Fionizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdaringe%2Fionizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdaringe%2Fionizer/lists"}