{"id":17587,"library":"ember-cli-deploy-manifest","title":"Ember CLI Deploy Manifest Generator","description":"ember-cli-deploy-manifest is an Ember CLI Deploy plugin designed to generate a manifest file during the application's build process. This manifest lists all versioned asset files, enabling deployment plugins like ember-cli-deploy-s3 to perform efficient, differential uploads. By comparing the current manifest with a previously deployed one, the plugin identifies only the changed files, reducing upload times and bandwidth usage significantly. The current stable version is 3.0.0, released in June 2023. This plugin operates within the ember-cli-deploy ecosystem, specifically implementing `configure` and `willUpload` hooks. Its release cadence appears to be tied to major ember-cli-deploy ecosystem updates or breaking changes in underlying dependencies, with major versions typically several years apart. Its primary differentiator is its integral role in optimizing asset deployments for Ember applications using the `ember-cli-deploy` toolchain.","status":"active","version":"3.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/ember-cli-deploy/ember-cli-deploy-manifest","tags":["javascript","ember-addon","ember-cli-deploy-plugin"],"install":[{"cmd":"npm install ember-cli-deploy-manifest","lang":"bash","label":"npm"},{"cmd":"yarn add ember-cli-deploy-manifest","lang":"bash","label":"yarn"},{"cmd":"pnpm add ember-cli-deploy-manifest","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"This plugin relies on the `distDir` and `distFiles` properties provided by `ember-cli-deploy-build` in the deployment context to correctly identify and process asset files. It is a fundamental prerequisite for typical usage.","package":"ember-cli-deploy-build","optional":false}],"imports":[{"note":"Ember CLI Deploy plugins are typically integrated into an Ember application via the `ember install` command, which handles package installation and configures the plugin within the Ember CLI Deploy pipeline. Direct programmatic import into application code is not the standard usage pattern.","wrong":"import { ManifestPlugin } from 'ember-cli-deploy-manifest'","symbol":"ember-cli-deploy-manifest","correct":"ember install ember-cli-deploy-manifest"},{"note":"Configuration options for `ember-cli-deploy-manifest` (e.g., `filePattern`, `manifestPath`) are defined within the `config/deploy.js` file, nested under the plugin's name. They are not exposed as directly importable symbols.","wrong":"const config = require('ember-cli-deploy-manifest').config;","symbol":"Configuration options","correct":"module.exports = function(deployTarget) { return { 'ember-cli-deploy-manifest': { filePattern: '**/*.{js,css,json}' } }; };"},{"note":"Deployment hooks like `configure` and `willUpload` are lifecycle events that `ember-cli-deploy` invokes automatically when the plugin is active. Developers do not typically import or call these functions directly from the plugin.","wrong":"import { configure, willUpload } from 'ember-cli-deploy-manifest';","symbol":"Deployment hooks","correct":"This plugin automatically implements `configure` and `willUpload` hooks within the ember-cli-deploy pipeline."}],"quickstart":{"code":"yarn add --dev ember-cli-deploy-manifest\nember install ember-cli-deploy-manifest\n\n// config/deploy.js\n// Make sure ember-cli-deploy-build runs before this plugin in your deploy.json pipeline.\nmodule.exports = function(deployTarget) {\n  const ENV = {\n    build: {\n      environment: 'production'\n    },\n    manifest: {\n      filePattern: '**/*.{js,css,png,gif,ico,jpg,map,xml,txt,svg,swf,eot,ttf,woff,woff2,json}',\n      manifestPath: 'manifest.txt' // Default, but can be customized\n    },\n    // ... other plugins like s3, redis, etc.\n  };\n\n  if (deployTarget === 'production') {\n    // Additional production-specific configuration\n  }\n\n  return ENV;\n};","lang":"javascript","description":"This quickstart shows how to install the plugin and configure its basic options in `config/deploy.js` to ensure a manifest is generated with desired file patterns during deployment."},"warnings":[{"fix":"Ensure your project's Node.js environment meets the new requirements (Node.js 14.x, 16.x, 18.x, or >=20.x). Update your CI/CD pipelines and local development environments accordingly.","message":"Version 3.0.0 introduces breaking changes by updating dependencies and significantly increasing the minimum required Node.js version. Projects using older Node.js versions (e.g., Node 12.x) will fail.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Review the changelogs of all `ember-cli-deploy` plugins used in your project and update them to their latest compatible versions. Test your deployment pipeline thoroughly after upgrading.","message":"Upgrading to v3.0.0 may require updating other `ember-cli-deploy` plugins to ensure compatibility with the updated dependency tree and potentially new internal APIs.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Always include `ember-cli-deploy-build` in your `ember-cli-deploy` pipeline before `ember-cli-deploy-manifest`. Verify that `ember-cli-deploy-build` is correctly configured and successfully executing.","message":"This plugin relies on the `distDir` and `distFiles` properties being present in the deployment context. These are typically provided by `ember-cli-deploy-build`. If `ember-cli-deploy-build` is not used or misconfigured, the manifest generation will fail or be incorrect.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Carefully review and test your `filePattern` and `fileIgnorePattern` configurations. Use specific glob patterns and ensure they correctly match only the desired fingerprinted assets, often including `json` files since v2.0.0.","message":"The `filePattern` and `fileIgnorePattern` options control which files are included or excluded from the generated manifest. Incorrect patterns can lead to incomplete manifests or the inclusion of unintended files, affecting caching and deployment efficiency.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"This is expected behavior for this type of package. Its functionality is exposed through the `ember-cli-deploy` system. Testing the plugin itself is done via `yarn test` in its repository, not through standard Ember CLI commands.","message":"As a Node-only Ember CLI addon, this package does not include many files and dependencies required for Ember CLI's typical `ember build` and `ember test` processes. Attempting to run `ember build` or `ember test` directly within the plugin's own directory will likely fail.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-23T00:00:00.000Z","next_check":"2026-07-22T00:00:00.000Z","problems":[{"fix":"Upgrade your Node.js environment to a compatible version (14.x, 16.x, 18.x, or >=20.x).","cause":"Running `ember-cli-deploy-manifest` v3.0.0 or later with an unsupported Node.js version.","error":"Error: Node.js v12.x is no longer supported by ember-cli-deploy-manifest. Please upgrade to Node.js v14.x or higher."},{"fix":"Ensure `ember-cli-deploy-build` is included in your `config/deploy.js` pipeline and executes successfully prior to `ember-cli-deploy-manifest`.","cause":"The `ember-cli-deploy-build` plugin, which populates `distDir` and `distFiles`, either wasn't run or completed unsuccessfully before `ember-cli-deploy-manifest`.","error":"Error: The 'distDir' property was not found in the deployment context."},{"fix":"Verify your `filePattern` and `fileIgnorePattern` in `config/deploy.js` are correct and match your application's built asset names. Check the `dist` folder to confirm assets are fingerprinted and present.","cause":"Incorrect `filePattern` or `fileIgnorePattern` configuration, or no fingerprinted assets were generated in the `dist` directory.","error":"Manifest file is empty or missing expected assets."},{"fix":"Run `ember install ember-cli-deploy-manifest` or `yarn add --dev ember-cli-deploy-manifest` to install the plugin.","cause":"The package has not been installed or has been removed from `node_modules`.","error":"Error: Cannot find module 'ember-cli-deploy-manifest'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}