All Projects → adopted-ember-addons → ember-cli-ifa

adopted-ember-addons / ember-cli-ifa

Licence: MIT license
Ember CLI addon for injecting fingerprinted asset map file into Ember app

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Handlebars
879 projects

Projects that are alternatives of or similar to ember-cli-ifa

Ember Decorators
Useful decorators for Ember applications.
Stars: ✭ 360 (+566.67%)
Mutual labels:  ember-cli, ember, ember-addon
Ember Cli Coffeescript
Adds precompilation of CoffeeScript files and all the basic generation types to the ember generate command.
Stars: ✭ 72 (+33.33%)
Mutual labels:  ember-cli, ember, ember-addon
ember-credit-card
"make your credit card form dreamy in one line of code"
Stars: ✭ 89 (+64.81%)
Mutual labels:  ember-cli, ember, ember-addon
ember-luxon
🕐 🌐 [deprecated] Addon thats brings Luxon to Ember applications.
Stars: ✭ 20 (-62.96%)
Mutual labels:  ember-cli, ember, ember-addon
ember-template-inspector
An ember add-on which opens the template file in the code editor while inspecting an element.
Stars: ✭ 15 (-72.22%)
Mutual labels:  ember-cli, ember, ember-addon
Ember Cli Bundle Analyzer
Analyze the size and contents of your Ember app's bundles
Stars: ✭ 78 (+44.44%)
Mutual labels:  ember-cli, ember, ember-addon
Ember Simple Auth Auth0
Auth0 + lock.js, built on ember-simple-auth
Stars: ✭ 53 (-1.85%)
Mutual labels:  ember-cli, ember, ember-addon
ember-cli-string-helpers
Set of the String helpers extracted from DockYard's ember-composable-helpers.
Stars: ✭ 73 (+35.19%)
Mutual labels:  ember-cli, ember, ember-addon
Ember Cli Notifications
⚛ Atom inspired notification messages for ember-cli
Stars: ✭ 168 (+211.11%)
Mutual labels:  ember-cli, ember, ember-addon
Ember Cli Stripe
Stripe checkout for Ember
Stars: ✭ 84 (+55.56%)
Mutual labels:  ember-cli, ember, ember-addon
ember-cli-nouislider
{{range-slider}} component for ember-cli powered by noUiSlider
Stars: ✭ 43 (-20.37%)
Mutual labels:  ember-cli, ember, ember-addon
ember-content-loader
Easy, customizable content placeholders / skeletons screens
Stars: ✭ 41 (-24.07%)
Mutual labels:  ember-cli, ember, ember-addon
ember-fastboot-app-tests
FastBoot testing support for Ember apps
Stars: ✭ 17 (-68.52%)
Mutual labels:  ember, ember-addon
ember-event-helpers
Complimentary event template helpers to the {{on}} modifier
Stars: ✭ 33 (-38.89%)
Mutual labels:  ember, ember-addon
ember-cli-g-maps
Deprecated Google Maps Addon
Stars: ✭ 58 (+7.41%)
Mutual labels:  ember, ember-addon
ember-ref-bucket
This is list of handy ember primitives, created to simplify class-based dom workflow
Stars: ✭ 31 (-42.59%)
Mutual labels:  ember, ember-addon
ember-cli-concat
An Ember addon that enables you to concatinate Ember CLI's app and vendor files into a single JS file and a single CSS file
Stars: ✭ 31 (-42.59%)
Mutual labels:  ember, ember-addon
ember-lazy-responsive-image
Generate and render responsive, lazy loaded, LQIP enabled images
Stars: ✭ 14 (-74.07%)
Mutual labels:  ember, ember-addon
ember-cordova
CLI for Ember/Cordova/Crosswalk Applications
Stars: ✭ 16 (-70.37%)
Mutual labels:  ember, ember-addon
ember-on-modifier
Implements the `{{on eventName this.someAction}}` element modifier from https://github.com/emberjs/rfcs/blob/master/text/0471-on-modifier.md
Stars: ✭ 37 (-31.48%)
Mutual labels:  ember, ember-addon

Build Status Code Climate

Ember-cli-ifa

Inject fingerprinted assetMap.json file into your app and provide initializer, service, and helper to dynamically reference fingerprinted assets.

When to use this addon?

  1. If you have dynamic asset file names returned from API and/or you build paths based on several properties.
  2. If you can't put your asset file names into css or to have path as static in your .js files.
  3. If you build your image/asset paths in a dynamic way, eg.
imagePath: computed(function() {
  return this.get('assetMap').resolve(`${this.get('image')}.png`);
})

Compatibility

  • Ember.js v3.12 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

ember install ember-cli-ifa

Configuration

Enable addon in environment.js for specific environment.

module.exports = function(environment) {
  var ENV = {
    ...
    ifa: {
      enabled: true,
      inline: false,
    }
    ...
  };

In case you use s3 and manifest module for ember-cli-deploy, update their configurations in config/deploy.js to include json as a valid file.

module.exports = function(environment) {
  var ENV = {
    ...
    s3: {
      filePattern: function(context, pluginHelper) {
        let filePattern = pluginHelper.readConfigDefault('filePattern');
        return filePattern.replace('}', ',json}');
      },
      ...
    },
    manifest: {
      filePattern: function(context, pluginHelper) {
        let filePattern = pluginHelper.readConfigDefault('filePattern');
        return filePattern.replace('}', ',json}');
      },
      ...
    },
    ...
  };

Configure fingerprinting in ember-cli-build.js. Refer to the documentation of ember-cli for asset-compilation

fingerprint: {
  enabled: true, // set to true only in required environments
  generateAssetMap: true,
  fingerprintAssetMap: true
}

Note that if you use fastboot, this addon is automatically forced into inline: true mode. This is necessary, as otherwise fastboot could not easily access that data.

Usage

asset-map helper

If name is tomster-under-construction:

<img src={{asset-map (concat "assets/" name ".png")}} />

then it will generate something like assets/tomster-under-construction-da524c8bc9283f759ae640b68db81f24.png based on assetMap.json.

asset-map service

import Component from 'ember-component';
import service from 'ember-service/inject';

export default Component.extend({
  assetMap: service('asset-map'),

  key: null, // key passed as 'tomster-under-construction'

  // result will be assets/tomster-under-construction-da524c8bc9283f759ae640b68db81f24.png
  image: computed('key', function() {
    return this.get('assetMap').resolve(`assets/${this.get('key')}.png`);
  })
});

Storing assets in a sub-directory

If prepend option is added in fingerprint configuration block, it will be prepended into generated asset path in the index.html.

// ember-cli-build.js
// ...
var app = new EmberApp(defaults, {
  fingerprint: {
    prepend: '/blog/'
  }
});

/blog will be prepended to the assetMap file path in the index.html.

inline option

If inline: true is specified in the config, contents of assetMap file will be inline into index.html.

This might save one request to assetMap.json, but will increase overall size of index.html file, so use carefully.

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].