Nonconformist Propaganda Machine

    webpack-sfdc-deploy-plugin

    1.1.11 • Public • Published

    Webpack SFDC Deploy Plugin

    npm version Dependency Status js-semistandard-style license

    NPM

    This is a webpack plugin that simplifies deploying Salesforce static resources. The most common use case is when you are working on SPA using modern JavaScript frameworks and want to deploy the bundle right after it was built.

    It is great to use the plugin with Webpack --watch parameter to deploy the application right after Webpack has updated it.

    Maintainer: Ruslan Kurchenko @henkookdev

    Installation

    Install the plugin with npm:

    $ npm install webpack-sfdc-deploy-plugin --save-dev

    Usage

    The plugin depends on useful JavaScript library that help to work with Salesforce API - jsforce.
    To successfully deploy your resources to Salesforce you need to provide credentials.

    Create a .js file with next format:

    module.exports = {
        username:   '<user@name.com>',
        password:   '<password>',
        token:      '<security token>'
    };

    How to get a security token for your Salesforce org you can see here

    Configuration

    You need pass a hash of configuration options to SfdcDeployPlugin.
    Required values are as follows:

    • credentialsPath: The relative path to .js file with credentials to you Salesforce org.
    • filesFolderPath: The relative path to the folder where placed files that need to be deployed.
    • staticResourceName: The title name that will be used for creating/updating the StaticResource on Salesforce org side.

    Basic deploy

    var path = require('path');
    var SfdcDeployPlugin = require('webpack-sfdc-deploy-plugin');
    var webpackConfig = {
      entry: 'index.js',
      output: {
        path: 'dist',
        filename: 'bundle.js'
      },
      plugins: [
          new SfdcDeployPlugin({
              credentialsPath: path.resolve(__dirname, 'sfdc-org-config.js'),
              filesFolderPath : path.resolve(__dirname, 'dist'),
              staticResourceName : 'AwesomeApplication'         
          })
      ]
    };

    This will create/update StaticResource with the name AwesomeApplication including all files that are in the dist folder using Salesforce credentials that are placed in sfdc-org-config.js file.

    Additional options

    The plugin has next optional configuration:

    • exclude: The array of Strings/RegExp to exclude files from deploying.
    • include: The array of Strings/RegExp to include only certain files to deploying. This option overrides exclude configuration.
    • srcFolderPath: The relative path to the src folder with Salesforce project metadata. If this option provided the plugin will search for old version of static resource and replace it with a newly bundled. (search for srcFolderPath/staticresources/staticResourceName)

    Also, you can provide only String/RegExp instead of array - exclude: 'vendors.bundle.js'

    Examples:

    • To exclude all JavaScript map files: exclude: /.js.map/
    • You can mix full file names with RegExp: exclude: ['vendor.bundle.js', /.js.map/]

    Future plans

    • The ability to deploy folders that are placed in deployment folder, for example - asset folder
    • The option to use Salesforce Tooling API instead of Matadata API
    • The option to see logs about deployment process

    Contribution

    You're free to contribute to this project by submitting issues and/or pull requests. This project uses the semistandard code style.

    License

    This project is licensed under MIT.

    Install

    npm i webpack-sfdc-deploy-plugin

    DownloadsWeekly Downloads

    6

    Version

    1.1.11

    License

    MIT

    Last publish

    Collaborators

    • henko.okdev