0.1.8 • Published 10 years ago
salesforce-template-webpack-plugin v0.1.8
salesforce-template-webpack-plugin
Extension of HtmlWebpackPlugin with templates for generating Salesforce metadata.
Install
npm i -D jade jade-loader salesforce-template-webpack-pluginExample 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 | falseIf true, also generate corresponding*-meta.xmlfiles andpackage.xml. Default istrue
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 oftemplateapiVersion: Salesforce API version of the metadata. Default is36.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 | falseConfigure the page as mobile-ready. Default isfalsebaseHref: SetunsupportedBrowser:true | falseDisplay a message on unsupported browsers. Default isfalseappMountId: 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 wherewebpack-dev-server.jscan be found.googleAnalytics:{...}Google Analytics options: -trackingId: The account's tracking ID. -pageViewOnLoad:true | falseTrack page views on load. Default isfalsecontroller:{...} | falseApex controller options: -apiName: API name of the controller. Default is 'Controller' appended to the base API name. -sharing:with | withoutSets with/without sharing on the controller. Default iswith. -testClass:true | falseAlso create a controller test class. Default istrue