Skip to content

This plugin will upload all built assets to s3

License

Notifications You must be signed in to change notification settings

fortrabbit/vite-plugin-s3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This plugin will upload all built assets to s3.

This package was heavily inspired by webpack-s3-plugin and also Laravel vapor's asset deployment.

Install Instructions

$ npm i vite-plugin-s3

$ yarn add vite-plugin-s3
Import vite-plugin-s3 in your vite config file and add it as a vite plugin.
import viteS3 from 'vite-plugin-s3';

export default defineConfig({
    plugins: [
        viteS3({
            s3Options: {
                accessKeyId: process.env.AWS_ACCESS_KEY_ID,
                secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
                region: 'us-east-1'
            },
            s3UploadOptions: {
                Bucket: 'dist-cdn',
            },
        }),
    ]
});
Config Example
viteS3({
    exclude: /.*\.img/,
    include: /.*\.js$/,
    uploadEnabled: !!process.env.UPLOAD_ENABLED,
    s3Options: {
        accessKeyId: process.env.AWS_ACCESS_KEY_ID,
        secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
        region: 'us-east-1'
    },
    s3UploadOptions: {
        Bucket: 'dist-cdn',
    },
    basePath: 'production',
})

Options

Option Type Default Description
uploadEnabled Boolean true This setting can be used to disable or enable the uploading of assets
exclude String A Regex Pattern to match for excluded content
include String A Regex Pattern to match for included content. Behaves the same as exclude
s3Options Object Upload options for s3Config
s3UploadOptions Object Upload options for putObject
basePath String The root namespace of uploaded files on S3
hasher Function Customize the behavior of how the manifest file gets hashed
onFinished Function This callback will be invoked after all operations are complete. The parameters passed are the instance of the s3 client used for uploading, the plugin config, and the manifest file hash

Example Usage

$ UPLOAD_ENABLED=true AWS_ACCESS_KEY_ID=******* AWS_SECRET_ACCESS_KEY=******** yarn prod

image

About

This plugin will upload all built assets to s3

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%