npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ember-cli-deploy-cloudinary

v0.1.1

Published

An ember-cli-deploy plugin. Upload assets to Cloudinary.

Downloads

1

Readme

ember-cli-deploy-cloudinary

An ember-cli-deploy plugin. Upload assets to Cloudinary CDN.

Compatibility

  • Ember.js v3.8 or above
  • Ember CLI v2.13 or above
  • Node.js v8 or above

This plugin uploads one or more files to an Cloudinary CDN. It could be used to upload the assets (js, css, images etc) or indeed the application's index.html.

What is an ember-cli-deploy plugin?

A plugin is an addon that can be executed as a part of the ember-cli-deploy pipeline. A plugin will implement one or more of the ember-cli-deploy's pipeline hooks.

For more information on what plugins are and how they work, please refer to the Plugin Documentation.

Quick Start

To get up and running quickly, do the following:

$ ember install ember-cli-deploy-cloudinary
  • Place the following configuration into config/deploy.js
ENV.cloudinary = {
    cloudName: '<your-cloudynary-cloud-name>'
    apiKey:    '<your-cloudynary-api-key>',
    apiSecret: '<your-cloudynary-api-secret>'
  }
  • Run the pipeline
$ ember deploy

Installation

Run the following command in your terminal:

ember install ember-cli-deploy-cloudinary

ember-cli-deploy Hooks Implemented

For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.

  • configure
  • upload

Configuration Options

For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.

cloudName

The Cloudinary Cloud name. How to integrate Cloudinary

apiKey

The Cloudinary API Key. How to integrate Cloudinary

Default: undefined

apiSecret

The Cloudinary API Secret. How to integrate Cloudinary

Default: undefined

secure

Force HTTPS connection.

Default: true

cdnSubdomain

Cloudynary subdomain. Multiple sub-domains

Default: res

folder

Upload target folder.

Default: ''

timestampSubfolder

Upload to inserted timestamp subfolder of upload target. Possible subfolder types:

  • timestamp
  • md5 (a md5 hash from timestamp)

Default:

  timestampSubfolder: {
      enabled: true,    
      type: "timestamp" // default, otherwise "md5" - hash from tymestamp
    }

filePattern

Files that match this pattern will be uploaded to Cloudinary. The file pattern must be relative to distDir. For an advanced usage, you may want to check out isaacs/minimatch's documentation.

Default: '**/*.{js,css,png,gif,ico,jpg,map,xml,txt,svg,swf,eot,ttf,woff,woff2,otf,wasm}'

fileIgnorePattern

Files matching this pattern will not be uploaded even if they match filePattern.

Default: null

dotFolders

This is a boolean that can be set to true to include hidden folders (that are prefixed with a .) as folders that can be uploaded to Cloudinary.

Default: false

invalidate

Invalidating cached media assets on the CDN

Default: true

uploadLarge

Change SDK uploader if files larger than 100 MB

Default: false

useFilename

See Upload API reference

Default: true

uniqueFilename

See Upload API reference

Default: true

overwrite

See Upload API reference

Default: true

resourceType

Upload resource type. See Upload API reference

Default: raw

type

See Upload API reference

Default: upload

accessControl

See Upload API reference

Default: {access_type: "anonymous"}

accessMode

See Upload API reference

Default: public

distDir

The root directory where the files matching filePattern will be searched for. By default, this option will use the distDir property of the deployment context, provided by ember-cli-deploy-build.

Default: context.distDir

distFiles

The list of built project files. This option should be relative to distDir and should include the files that match filePattern. By default, this option will use the distFiles property of the deployment context, provided by ember-cli-deploy-build.

Default: context.distFiles

manifestPath

The path to a manifest that specifies the list of files that are to be uploaded to CDN.

This manifest file will be used to work out which files don't exist on CDN and, therefore, which files should be uploaded. By default, this option will use the manifestPath property of the deployment context, provided by ember-cli-deploy-manifest.

Default: context.manifestPath

Additional features

This addon define willBuild hook and generate fingerprint for prepend assets. Generator based on the context.config.build.fingerprint.prepend option and be available from 'context.cdnFingerprintPrepend' and process.env.CDN_FINGERPRINT_PREPEND. This useful, for example, for set build fingerprint in index.html assets paths.

###Setup example code:

config/deploy.js


  if (deployTarget === 'staging' || deployTarget === 'production') {
    let assets_prepend =  [ ENV.cloudinary.secure  ? "https:/" : "http:/",  
      ENV.cloudinary.cdnSubdomain  ? (ENV.cloudinary.cdnSubdomain + ".cloudinary.com") : "res.cloudinary.com",
      ENV.cloudinary.cloudName,
      "raw/upload",
      ENV.cloudinary.folder === "" ? "" : ENV.cloudinary.folder +"/" 
      
    ].join("/")

    ENV.build.fingerprint = {
      prepend: assets_prepend
    }
  }

ember-cli-build.js


  const EmberApp = require('ember-cli/lib/broccoli/ember-app');

  module.exports = function(defaults) {

    let app = new EmberApp(defaults, {
      fingerprint: {
        prepend: process.env.CDN_FINGERPRINT_PREPEND
      }
    });
    return app.toTree();
  };

Prerequisites

The following properties are expected to be present on the deployment context object:

Tests

  • yarn test

Why ember build and ember test don't work

Since this is a node-only ember-cli addon, this package does not include many files and dependencies which are part of ember-cli's typical ember build and ember test processes.