{"id":29226392,"url":"https://github.com/adopted-ember-addons/ember-cli-ifa","last_synced_at":"2025-12-30T00:55:36.638Z","repository":{"id":38271653,"uuid":"68858268","full_name":"adopted-ember-addons/ember-cli-ifa","owner":"adopted-ember-addons","description":"Ember CLI addon for injecting fingerprinted asset map file into Ember app","archived":false,"fork":false,"pushed_at":"2022-12-10T17:04:13.000Z","size":2946,"stargazers_count":56,"open_issues_count":33,"forks_count":48,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-06-16T11:18:51.851Z","etag":null,"topics":["ember","ember-addon","ember-cli"],"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/adopted-ember-addons.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-21T21:17:33.000Z","updated_at":"2024-07-29T06:04:59.000Z","dependencies_parsed_at":"2023-01-26T05:30:57.598Z","dependency_job_id":null,"html_url":"https://github.com/adopted-ember-addons/ember-cli-ifa","commit_stats":null,"previous_names":["ruslanzavacky/ember-cli-ifa"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/adopted-ember-addons/ember-cli-ifa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adopted-ember-addons%2Fember-cli-ifa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adopted-ember-addons%2Fember-cli-ifa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adopted-ember-addons%2Fember-cli-ifa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adopted-ember-addons%2Fember-cli-ifa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adopted-ember-addons","download_url":"https://codeload.github.com/adopted-ember-addons/ember-cli-ifa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adopted-ember-addons%2Fember-cli-ifa/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260148773,"owners_count":22965964,"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":["ember","ember-addon","ember-cli"],"created_at":"2025-07-03T08:09:10.353Z","updated_at":"2025-12-30T00:55:36.591Z","avatar_url":"https://github.com/adopted-ember-addons.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/RuslanZavacky/ember-cli-ifa.svg?branch=master)](https://travis-ci.org/RuslanZavacky/ember-cli-ifa)\n[![Code Climate](https://codeclimate.com/github/RuslanZavacky/ember-cli-ifa/badges/gpa.svg)](https://codeclimate.com/github/RuslanZavacky/ember-cli-ifa)\n\nEmber-cli-ifa\n==============================================================================\n\nInject fingerprinted assetMap.json file into your app and provide initializer, service, and helper to\ndynamically reference fingerprinted assets.\n\n**When to use this addon?**\n\n1. If you have dynamic asset file names returned from API and/or you build paths based on several properties.\n1. If you can't put your asset file names into css or to have path as static in your .js files.\n1. If you build your image/asset paths in a dynamic way, eg.\n```js\nimagePath: computed(function() {\n  return this.get('assetMap').resolve(`${this.get('image')}.png`);\n})\n```\n\nCompatibility\n------------------------------------------------------------------------------\n\n* Ember.js v3.12 or above\n* Ember CLI v2.13 or above\n* Node.js v10 or above\n\nInstallation\n------------------------------------------------------------------------------\n\n```bash\nember install ember-cli-ifa\n```\n\nConfiguration\n------------------------------------------------------------------------------\n\nEnable addon in `environment.js` for specific environment.\n\n```javascript\nmodule.exports = function(environment) {\n  var ENV = {\n    ...\n    ifa: {\n      enabled: true,\n      inline: false,\n    }\n    ...\n  };\n```\n\nIn case you use s3 and manifest module for ember-cli-deploy, update their configurations in `config/deploy.js`\nto include `json` as a valid file.\n\n```javascript\nmodule.exports = function(environment) {\n  var ENV = {\n    ...\n    s3: {\n      filePattern: function(context, pluginHelper) {\n        let filePattern = pluginHelper.readConfigDefault('filePattern');\n        return filePattern.replace('}', ',json}');\n      },\n      ...\n    },\n    manifest: {\n      filePattern: function(context, pluginHelper) {\n        let filePattern = pluginHelper.readConfigDefault('filePattern');\n        return filePattern.replace('}', ',json}');\n      },\n      ...\n    },\n    ...\n  };\n```\n\nConfigure fingerprinting in `ember-cli-build.js`. Refer to the documentation of ember-cli for [asset-compilation](https://ember-cli.com/asset-compilation#fingerprinting-and-cdn-urls)\n\n```javascript\nfingerprint: {\n  enabled: true, // set to true only in required environments\n  generateAssetMap: true,\n  fingerprintAssetMap: true\n}\n```\n\nNote that if you use fastboot, this addon is automatically forced into `inline: true` mode.\nThis is necessary, as otherwise fastboot could not easily access that data.\n\nUsage\n------------------------------------------------------------------------------\n\n### asset-map helper\n\nIf `name` is `tomster-under-construction`:\n\n```html\n\u003cimg src={{asset-map (concat \"assets/\" name \".png\")}} /\u003e\n```\n\nthen it will generate something like `assets/tomster-under-construction-da524c8bc9283f759ae640b68db81f24.png` based on assetMap.json.\n\n### asset-map service\n\n```javascript\nimport Component from 'ember-component';\nimport service from 'ember-service/inject';\n\nexport default Component.extend({\n  assetMap: service('asset-map'),\n\n  key: null, // key passed as 'tomster-under-construction'\n\n  // result will be assets/tomster-under-construction-da524c8bc9283f759ae640b68db81f24.png\n  image: computed('key', function() {\n    return this.get('assetMap').resolve(`assets/${this.get('key')}.png`);\n  })\n});\n```\n\n### Storing assets in a sub-directory\n\nIf `prepend` option is added in fingerprint configuration block, it will be prepended into\ngenerated asset path in the index.html.\n\n```javascript\n// ember-cli-build.js\n// ...\nvar app = new EmberApp(defaults, {\n  fingerprint: {\n    prepend: '/blog/'\n  }\n});\n```\n\n`/blog` will be prepended to the assetMap file path in the index.html.\n\n\n### inline option\n\nIf `inline: true` is specified in the config, contents of assetMap file will be inline into index.html.\n\nThis might save one request to assetMap.json, but will increase overall size of `index.html` file, so use carefully.\n\nContributing\n------------------------------------------------------------------------------\n\nSee the [Contributing](CONTRIBUTING.md) guide for details.\n\n\nLicense\n------------------------------------------------------------------------------\n\nThis project is licensed under the [MIT License](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadopted-ember-addons%2Fember-cli-ifa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadopted-ember-addons%2Fember-cli-ifa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadopted-ember-addons%2Fember-cli-ifa/lists"}