0.1.8 • Published 8 years ago

salesforce-template-webpack-plugin v0.1.8

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

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
0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago