{"id":18295,"library":"ember-cli-deploy-plugin","title":"ember-cli-deploy-plugin","description":"Base class for building plugins for ember-cli-deploy. Version 0.2.9 is the latest stable release, with a slow release cadence (last release 2016). It provides a base class with helpers for config management (defaultConfig, requiredConfig, readConfig), logging (log method with color and verbose options), and async hooks (returning promises). Key differentiator: standardizes plugin development across the ember-cli-deploy ecosystem, reducing boilerplate and ensuring consistent behavior. Older versions may have breaking changes, e.g., v0.2.7 changed `this` context in config functions.","status":"maintenance","version":"0.2.9","language":"javascript","source_language":"en","source_url":"https://github.com/ember-cli-deploy/ember-cli-deploy-plugin","tags":["javascript"],"install":[{"cmd":"npm install ember-cli-deploy-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add ember-cli-deploy-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add ember-cli-deploy-plugin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Base class for the DeployPluginBase uses CoreObject.extend pattern","package":"core-object","optional":false}],"imports":[{"note":"The package only provides a CommonJS module; ESM import is not supported.","wrong":"import DeployPluginBase from 'ember-cli-deploy-plugin';","symbol":"DeployPluginBase","correct":"const DeployPluginBase = require('ember-cli-deploy-plugin');"},{"note":"The plugin must be exported as an object with a createDeployPlugin function, not a default function.","wrong":"export default function createDeployPlugin(options) { ... }","symbol":"module.exports.createDeployPlugin","correct":"module.exports = { createDeployPlugin: function(options) { ... } };"},{"note":"Use readConfig method instead of directly accessing config object to get default values or dynamic functions.","wrong":"this.config['key'];","symbol":"this.readConfig","correct":"this.readConfig('key');"}],"quickstart":{"code":"// index.js\n'use strict';\n\nvar DeployPluginBase = require('ember-cli-deploy-plugin');\n\nmodule.exports = {\n  name: 'ember-cli-deploy-awesomeness',\n  createDeployPlugin: function(options) {\n    var DeployPlugin = DeployPluginBase.extend({\n      name: options.name,\n      defaultConfig: {\n        someKey: 'defaultValue'\n      },\n      requiredConfig: ['awesomeApiKey'],\n      willUpload: function(context) {\n        var someValue = this.readConfig('someKey');\n        this.log('Log message', { color: 'green' });\n        return Promise.resolve();\n      }\n    });\n    return new DeployPlugin();\n  }\n};","lang":"javascript","description":"Demonstrates creating a custom deploy plugin using the base class, with default config, required config, and a hook."},"warnings":[{"fix":"Update config functions to reference the config object instead of the plugin instance.","message":"Context of `this` within user-defined config property functions changed from the base plugin to the surrounding config object.","severity":"breaking","affected_versions":"0.2.7"},{"fix":"Use const pkg = require('ember-cli-deploy-plugin'); instead of import.","message":"The package only supports CommonJS require; using ES6 import syntax will fail.","severity":"gotcha","affected_versions":">=0.2.0"},{"fix":"Consider migrating to ember-cli-deploy's newer plugin patterns if available.","message":"The package is now in maintenance mode and not actively developed for new features.","severity":"deprecated","affected_versions":">=0.2.9"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install ember-cli-deploy-plugin --save-dev` in your plugin directory.","cause":"Package not installed or incorrect module path.","error":"Cannot find module 'ember-cli-deploy-plugin'"},{"fix":"Ensure you call DeployPluginBase.extend({...}) and return new DeployPlugin() in createDeployPlugin.","cause":"The plugin instance does not have readConfig method, likely because the base class was not extended correctly.","error":"TypeError: this.readConfig is not a function"},{"fix":"Set name in module.exports.name or pass options.name to the createDeployPlugin function.","cause":"Missing name property in the plugin object or options.name not passed.","error":"The plugin did not provide a name"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}