Socket
Socket
Sign inDemoInstall

aws-deploy-script-fe

Package Overview
Dependencies
Maintainers
23
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-deploy-script-fe

AWS script for deploying your frontend applications.


Version published
Weekly downloads
47
decreased by-42.68%
Maintainers
23
Weekly downloads
 
Created
Source

AWS Deploy script

FEArmy

AWS script for deploying your frontend applications.

Introduction

The most common configuration used for our projects is using an S3 Bucket to contain our static files. Optionally you can have a CloudFront playing as a CDN.

The aim of this script is to read all your files and sync directly to the bucket without having to install AWS CLI or any kind of credentials configuration.

This script is cross project which means you only need to have a build/ folder to sync.

Folder structure

ROOT
    build/
      index.html
      ...
    aws.js
    ...
  • The aws.js file should be at the root of your project, it will contain credentials and will export them as an object like this:

  • The aws.js file also contains a specific object called metrics to persist the measured deploy-time in a db. If you do not wish to persist the metric the object can be removed.

module.exports = {
  development: {
    accessKeyId: "XXXXXXXXXXXXXXXXXXXX",
    secretAccessKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    region: "us-east-1",
    bucket: "<Name of the bucket>",
    distributionId: "XXXXXXXXXXXXXX",
    options: { // Optional
      preserveFiles: [/^sitemap/, "bar.js"]
    }
  },
  stage: {
    accessKeyId: "XXXXXXXXXXXXXXXXXXXX",
    secretAccessKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    region: "us-east-1",
    bucket: "<Name of the bucket>",
    distributionId: "XXXXXXXXXXXXXX",
    options: { // Optional
      preserveFiles: ["static/baz.js"]
    }
  },
  metrics: {
    tech: "react/vue/angular",
    repoName: "<Name of the repository>",
    baseUrl: "<Url to the api db>"
  }
};
  • The build/ folder will contain the file you want to sync

  • The distributionId is optional, in case you've got it. The script will create an invalidation for all your files.

Options

  • preserveFiles. It allows to specify an array of S3 file paths that won't be removed when the script cleans the bucket before uploading the new build. It's useful if you want to upload files manually to the S3 bucket. Supports regex and strings

  • environment or e. It specifies the environment in which you are going to deploy your app. Also the key of your aws.js file that has the corresponding credentials

  • path or p. The path of you generated static build files.

  • outputPath or o. The S3 path to upload your files (e.g. in case you don't want to upload all files in the root of the bucket)

Usage

You can install this package globally and run aws-deploy

npm install -g aws-deploy-script-fe

The command line to execute can be:

aws-deploy --env <enviroment-name> --path <build-path>

or

aws-deploy -e <enviroment-name> -p <build-path>
  • This enviroment-name is the key of the main object exported in aws.js.
  • If no enviroment-name is declared then it will use development as default.
  • The build-path is optional and defaults to build.

Required dependencies

The dependency you need to install is aws-sdk

Required policies

To run this script you must add these action policies to the user configured in the aws.js file

"Action": [
  "s3:GetObject",
  "s3:GetObjectAcl",
  "s3:ListMultipartUploadParts",
  "s3:PutObject",
  "s3:PutObjectAcl",
  "s3:DeleteObject",
  "cloudfront:CreateInvalidation"
]

About

This project is maintained by Damián Finkelstein, Pablo Ferro, Francisco Iglesias and Lucas Zibell and it was written by Wolox.

Wolox

FAQs

Package last updated on 26 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc