Create addon with generator command
ember addon <addon-name>
example:
ember addon ember-cli-holderjs
Add bower dependency
create blueprint to install dependency
ember g blueprint <addon-name>
example:
ember g blueprint ember-cli-holderjs
Two files will be created
installing blueprint
Edit blueprints/<addon-name>/index.js
create blueprints/.jshintrc create blueprints/ember-cli-holderjs/index.js
Edit blueprints/<addon-name>/index.js
Add afterInstall hook to add javascript library package to bower.json
afterInstall: function(options) {
return this.addBowerPackageToProject('holderjs', '2.9.0');
}
Generate component
ember g component <addon-name>
example:
ember g component ember-cli-holderjs
This will create following files
installing component create addon/components/ember-cli-holderjs.js create addon/templates/components/ember-cli-holderjs.hbs installing component-test create tests/integration/components/ember-cli-holderjs-test.js installing component-addon create app/components/ember-cli-holderjs.js
Edit addon/components/<addon-name> according to your need.
Example:
import Ember from 'ember';
import layout from '../templates/components/ember-cli-holderjs';
export default Ember.Component.extend({
layout: layout,
didInsertElement: function() {
Ember.run.next(function() {
Holder.run();
});
}
});
Edit addon/templates/components/<addon-name>
Example:
<img data-src={{src_url}} alt='holderjs image' class={{class}} />update package.json dependencies
"dependencies": {
"ember-cli-babel": "^5.1.3",
// Add ember-cli-htmlbars for compiling templates
"ember-cli-htmlbars": "0.7.9"
}
Add dummy app
update index.js
/* jshint node: true */
'use strict';
module.exports = {
name: 'ember-cli-holderjs',
included: function(app){
this._super.included(app);
// Include library js file
this.app.import(app.bowerDirectory + '/holderjs/holder.min.js');
}
};
update bower.json, add devDependencies
"devDependencies": {
"holderjs": "2.9.0" // Javascript library
}
update tests/dummy/app/templates/application.hbs
Example:
{{ember-cli-holderjs src_url="holder.js/132x128?text=Upload Photo"}}
Check if addon is working properly
Run server:
ember server
Browse : localhost://4200
This comment has been removed by the author.
ReplyDelete