{"id":15015933,"url":"https://github.com/izelnakri/mber","last_synced_at":"2025-10-10T00:12:41.552Z","repository":{"id":31889555,"uuid":"124653844","full_name":"izelnakri/mber","owner":"izelnakri","description":"Fast and minimal Ember.js CLI alternative, without broccoli.","archived":false,"fork":false,"pushed_at":"2023-03-14T00:57:43.000Z","size":19025,"stargazers_count":34,"open_issues_count":18,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-16T00:18:19.779Z","etag":null,"topics":["cli","ember","ember-cli","emberjs","frontend","glimmer","glimmerjs","testing"],"latest_commit_sha":null,"homepage":"","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/izelnakri.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-03-10T12:31:45.000Z","updated_at":"2024-11-07T04:12:42.000Z","dependencies_parsed_at":"2024-01-09T05:02:42.635Z","dependency_job_id":"98998267-6f6f-444e-a1e4-54c3de06f690","html_url":"https://github.com/izelnakri/mber","commit_stats":{"total_commits":453,"total_committers":3,"mean_commits":151.0,"dds":0.04856512141280356,"last_synced_commit":"1e731e850d60c20067bebd5dad5dd3c704271910"},"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/izelnakri/mber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izelnakri%2Fmber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izelnakri%2Fmber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izelnakri%2Fmber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izelnakri%2Fmber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/izelnakri","download_url":"https://codeload.github.com/izelnakri/mber/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izelnakri%2Fmber/sbom","scorecard":{"id":499274,"data":{"date":"2025-08-11","repo":{"name":"github.com/izelnakri/mber","commit":"1e731e850d60c20067bebd5dad5dd3c704271910"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Code-Review","score":0,"reason":"Found 0/20 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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/push.yml:1","Info: no jobLevel write permissions found"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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"}},{"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/push.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/izelnakri/mber/push.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/izelnakri/mber/push.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/push.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/izelnakri/mber/push.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/izelnakri/mber/push.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/izelnakri/mber/push.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating node:16.14 to node:16.14@sha256:6e54786b2ad01667d46524e82806298714f50d2be72b39706770aed55faedbd7","Warn: npmCommand not pinned by hash: Dockerfile:11","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":0,"reason":"61 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-wg6g-ppvx-927h","Warn: Project is vulnerable to: GHSA-wxhq-pm8v-cw75","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-px4h-xg32-q955","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-3j8f-xvm3-ffx4","Warn: Project is vulnerable to: GHSA-4p35-cfcx-8653","Warn: Project is vulnerable to: GHSA-7f3x-x4pr-wqhj","Warn: Project is vulnerable to: GHSA-jpp7-7chh-cf67","Warn: Project is vulnerable to: GHSA-q6wq-5p59-983w","Warn: Project is vulnerable to: GHSA-j9fq-vwqv-2fm2","Warn: Project is vulnerable to: GHSA-pqw5-jmp5-px4v","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T21:22:53.347Z","repository_id":31889555,"created_at":"2025-08-19T21:22:53.347Z","updated_at":"2025-08-19T21:22:53.347Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002373,"owners_count":26083356,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"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":["cli","ember","ember-cli","emberjs","frontend","glimmer","glimmerjs","testing"],"created_at":"2024-09-24T19:48:10.420Z","updated_at":"2025-10-10T00:12:41.535Z","avatar_url":"https://github.com/izelnakri.png","language":"JavaScript","funding_links":[],"categories":["Packages"],"sub_categories":["Tools"],"readme":"![docker-based-ci](https://github.com/izelnakri/mber/workflows/docker-based-ci/badge.svg)\n\n# mber: Modern Ember.js CLI alternative, without broccoli.\n\nThis build system uses [TypeScript](https://www.typescriptlang.org/docs/handbook/basic-types.html), [Module Unification RFC](https://github.com/emberjs/rfcs/blob/master/text/0143-module-unification.md) and [fastboot](https://www.ember-fastboot.com/) by default.\nIt also runs JS transpilation, bundling and linting in a multithreaded context with a thread pool in order to utilize all your CPU cores.\nI've recently rewrote ember-cli, because it uses a not-so-ideal broccoli build system that does too much counter-intuitive magic.\nOne day after reading ember-cli source code, I've realized rewriting this from scratch is the only way to move forward for me personally.\n\nMber is a very minimal, fast and strict alternative for ember-cli. Mber does pretty much everything ember-cli does unless you want to create your own addon.\nYou can use most of the ember addons, as long as the addon itself doesn't inject things to your broccoli/ember-cli runtime.\nIn future I might support addon creation/testing as well.\n\nLots of thought and effort went into designing this replacement.\nMber has a full test suite. Currently mber has 54 less dependencies than ember-cli as of this writing,\nthis is without counting the massive sub-dependencies.\nIt is highly suggested to read the source code, it is very simple, readable and written with ES modules and async/await.\nContributions are always welcome. Mber never blocks the nodejs event loop.\n\n\u003cp\u003e\n  WARNING: No guarantee is given for backward compatibility with ember-cli.\n\n  \u003ca href=\"https://circleci.com/gh/izelnakri/mber/\"\u003e\n    \u003cimg src=\"https://circleci.com/gh/izelnakri/mber/tree/master.png\" alt=\"Build Status\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nI've never benchmarked this against ember-cli, but my observation is, mber is at least 5 times faster than ember-cli. The difference is probably more(can get to 20x+) for complex builds and big apps. Also no more zombie processes that consume your default port, massive tmp folders or immortal/kill-resistant build processes.\n\n## Installation\n\nMake sure you have node.js v15+ installed. `mber` uses the latest native nodejs `worker_thread` to achive multithreading\nand the latest node.js native [fs/promises](https://nodejs.org/dist/latest-v15.x/docs/api/fs.html#fs_promise_example)\nmodule. Then install mber CLI:\n\n```\nnpm install -g mber\n```\n\nCheck mber CLI commands:\n\n```\nmber\n```\n\nCreate an mber application:\n\n```\nmber new [your-app-name]\n```\n\nrun mber server:\n\n```\nmber s\n```\n\nNow your development server is running on http://localhost:1234\n\n### Testing\n\nRunning your application test suite is same as before:\n\n```\nmber test --server\n```\n\nYou can now view your tests in your browser afterwards.\n\nIf you are running your tests in the terminal and CI servers you can use the following:\n\n```\nmber test\n```\n\nIf you want to view/debug the browser output:\n\n```\nmber test --debug=true\n```\n\nCurrently tests only run on the actual google chrome for CI. In future I might implement CI mode support for other browsers.\n\n### Adding libraries and ember-cli-addons to your build\n\nInstead of ```ember-cli-build.js``` you now have ```index.js``` in your project root which allows you to add 3rd party code to your application and build your application. The syntax is very similar to ember-cli. However here we are slightly more explicit and respect node.js conventions. In far future this design decision will allow node.js imports of your frontend code:\n\n```js\n// in your index.js\n\n/* eslint-env node */\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  if (environment !== 'somecustomenvironment') {\n    app.import('node_modules/yourlibrary/dist/', { type: 'vendor '});\n\n    app.import('node_modules/chart.js/dist/Chart.min.js', {\n      type: 'application', prepend: true, using: [{\n        transformation: 'fastbootShim'\n      }]\n    }); // NOTE: same sytax as documented in ember-cli docs\n  }\n\n  // NOTE: Your addons are now not magically imported for the sake of explicitness and control.\n  // Instead, for example you can import your code via:\n  app.importAddon('ember-cli-moment', {\n    type: 'vendor', using: [{ transformation: 'fastbootShim' }]\n  });\n\n  return app.build(environment);\n}\n\n```\n\n### Whitelisting npm modules\n\nMber supports importing npm modules or browser javascript as AMD modules. However you need to explicitly state these imports in your build config(index.js). The reason why this is needed is explained [here](https://github.com/izelnakri/mber/blob/master/npm-import-explanation.md):\n\n```js\n// in your index.js\n\n/* eslint-env node */\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  app.importAsAMDModule('moment', 'node_modules/moment/min/moment.min.js', {\n    type: 'vendor'\n  });\n\n  app.importAsAMDModule('bip39', {\n    type: 'vendor', using: [{ transformation: 'fastbootShim' }]\n  });\n\n  return app.build(environment);\n}\n\n// then in your application code you can simply import these modules\n\nimport Component from '@ember/component';\nimport moment from 'moment';\nimport bip39 from 'bip39';\n\nexport default Component.extend({\n  phrase: bip39.generateMnemonic()\n});\n```\n\n### Adding dynamic inline-content to your index.html\n\n./index.html supports dynamic inline-content based on your environment configuration:\n\n```html\n\u003c!-- in your index.html --\u003e\n\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e\n    \u003cmeta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"\u003e\n\n    \u003cmeta charset=\"utf-8\"\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"\u003e\n\n    \u003cmeta name=\"description\" content=\"\"\u003e\n    \u003c!-- EMBER_CLI_FASTBOOT_TITLE --\u003e\u003c!-- EMBER_CLI_FASTBOOT_HEAD --\u003e\n\n    \u003clink rel=\"stylesheet\" href=\"/assets/application.css\"\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003c!-- EMBER_CLI_FASTBOOT_BODY --\u003e\n\n    \u003cscript src=\"/assets/vendor.js\"\u003e\u003c/script\u003e\n    \u003cscript src=\"/assets/application.js\"\u003e\u003c/script\u003e\n\n    {{google-analytics}}\n\n    {{sentry}}\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n```js\n// in your index.js\n\n/* eslint-env node */\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  if (environment === 'production') {\n    app.injectInlineContent('googleAnalytics', `\n      \u003cscript\u003e\n        window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;\n        ga('create', '${ENV.googleAnalyticsId}', 'auto');\n      \u003c/script\u003e\n      \u003cscript async src='https://www.google-analytics.com/analytics.js'\u003e\u003c/script\u003e\n    `);\n  }\n\n  if (ENV.sentry.url) {\n    app.injectInlineContent('sentry', `\n      \u003cscript\u003e\n        Raven.config('${ENV.sentry.url}', {\n          ignoreUrls: [${ENV.sentry.ignoreUrls}],\n          ignoreErrors: ${JSON.stringify(ENV.sentry.ignoreErrors)}\n        }).addPlugin(Raven.Plugins.Ember).install();\n      \u003c/script\u003e\n    `);\n  }\n\n  return app.build(environment);\n}\n```\n\n#### Extra: How to exclude ember-data from your application:\n\nBy default mber builds an ember application without jQuery. If want jquery in your application do this:\n\n```js\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  // your other configuration ..\n\n  app.import('node_modules/jquery/dist/jquery.min.js', {\n    type: 'vendor', prepend: true\n  });\n\n  return app.build(environment);\n}\n```\n\nIf you want to exclude EmberData from your application. Add excludeEmberData to your config/environment.js:\n\n```js\n'use strict';\n\nmodule.exports = function(environment) {\n  let ENV = {\n    modulePrefix: '{{applicationName}}',\n    environment,\n    excludeEmberData: true // to exclude ember-data\n  }\n\n  // .. remaining code\n\n  return ENV;\n}\n```\n\n#### Hipster feature: You can now run your frontend app from your command line:\n\n```mber console```\n\nYep, now you can.\n\n\n#### Using ember-i18n with mber\n\nCurrently ember-i18n has legacy folder/code under addon directory that gets filtered during ember-cli builds. Until that issue gets resolved you can use mber-i18n instead. Example:\n\n```js\n// in your index.js\n\n/* eslint-env node */\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  app.importAddon('ember-i18n', 'mber-i18n', { type: 'vendor' }); // here we are telling mber to inject addon code of mber-i18n npm module, however use ember-i18n module name during AMD transpilation\n}\n```\n\n#### Using sinon with mber tests\n\nSinon is a very large javascript project with 10k+ lines of code, this can make your initial build noticibly slow for tests. When you `importAsAMDModule(file)`, mber by default runs the target javascript file through babel and browserify. In order to disable this transpilation you can use: { transpile: false } option, therefore maintain the exceptional initial build speed:\n\n```js\n/* eslint-env node */\nconst app = require('mber');\n\nmodule.exports = function(ENV) {\n  const { environment } = ENV;\n\n  if (environment === 'test') {\n    app.importAsAMDModule('sinon', 'node_modules/sinon/pkg/sinon-no-sourcemaps.js', {\n      type: 'test', prepend: true, transpile: false\n    });\n  }\n\n  return app.build(environment);\n}\n```\n\n#### Enabling Ember optional features\n\nCurrently ember-source builds toggle two features based on environment configurations. You can toggle them in your `environment.js`:\n\n```js\nmodule.exports = function(environment) {\n  let ENV = {\n    _APPLICATION_TEMPLATE_WRAPPER: false, // NOTE: true by default\n    _TEMPLATE_ONLY_GLIMMER_COMPONENTS: true // NOTE: false by default\n  }\n};\n```\n\n# CREDITS\nThis would have been impossible without the great interop libraries, structures, conventions and the framework source code itself which is mainly developed by the ember core team and the community by large.\n\nThis library is also a message to inspire and demonstrate Embers superiority in design and community to other frontend developers who are not yet fully knowledgeable of Ember.js framework.\n\nThe software is currently in beta stage, expect it to become stable shortly with no backward-compatibility promises.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizelnakri%2Fmber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fizelnakri%2Fmber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizelnakri%2Fmber/lists"}