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

salesforce-template-webpack-plugin

v0.1.8

Published

Webpack plugin for generating Salesforce metadata

Downloads

18

Readme

salesforce-template-webpack-plugin

npm version Project Status: Active - The project has reached a stable, usable state and is being actively developed.

Extension of HtmlWebpackPlugin with templates for generating Salesforce metadata.

Install

npm i -D jade jade-loader salesforce-template-webpack-plugin

Example configuration

webpack.config.js

const path = require('path');

const SalesforceTemplateWebpackPlugin =
	require('salesforce-template-webpack-plugin');

const PACKAGE_DIR = path.join(__dirname, 'pkg');

// ...

const webpackConfig = {
	output: {
		path: 'dist',
		filename: 'index_bundle.js'
	},
	module: {
		// required for jade templates
		loaders: [{
			test: /\.jade$/,
			loader: 'jade?pretty=true'
		}]
	},
	plugins: {
		new SalesforceTemplateWebpackPlugin({
			outputDir: PACKAGE_DIR,
			files: [{
				template: 'SinglePageApp'
			}]
		})
	}
}

Plugin Options

These are the minimal plugin options. Template-specific options are listed in the following section.

  • outputDir: Path to the base output directory for generated files. Required.
  • distDir: Path to where the plugin will package resources as a StaticResource zip.
  • files: [...] An array of template options (see below). Required.
  • meta: true | false If true, also generate corresponding *-meta.xml files and package.xml. Default is true

Templates

The plugin includes a few default Jade/EJS templates.

  • template: Name of a template. Required.
  • apiName: A unique API name for assigning filenames and any references from within templates. Default is the value of template
  • apiVersion: Salesforce API version of the metadata. Default is 36.0
A minimal example
new SalesforceTemplateWebpackPlugin({
	files: [{
		template: '<template name>',
		// additional template options
	}]
})

SinglePageApp

A bare-bones Visualforce page and Apex remoting controller for use as a "single page" web app.

  • title: Title of the page. Default is 'Visualforce App'
  • mobile: true | false Configure the page as mobile-ready. Default is false
  • baseHref: Set
  • unsupportedBrowser: true | false Display a message on unsupported browsers. Default is false
  • appMountId: Create a div element with the id given.
  • appMountIds: [...] Create div elements with the ids given.
  • window: {...} Extend the global window object with defined key-values.
  • devServer: Path to directory where webpack-dev-server.js can be found.
  • googleAnalytics: {...} Google Analytics options:
    • trackingId: The account's tracking ID.
    • pageViewOnLoad: true | false Track page views on load. Default is false
  • controller: {...} | false Apex controller options:
    • apiName: API name of the controller. Default is 'Controller' appended to the base API name.
    • sharing: with | without Sets with/without sharing on the controller. Default is with.
    • testClass: true | false Also create a controller test class. Default is true