A Webpack plugin to generate HTML file from Salesforce Visualforce pages. This is especially usefull to locally develop Visualforce pages without having to deploy to Salesforce.
Install the plugin with npm:
npm install --save-dev visualforce-html-webpack-plugin
The plugin will generate an HTML file for you for each Visualforce pages present in your workspace. Just add the plugin to your webpack config as follows:
var VisualforceHtmlPlugin = require('visualforce-html-webpack-plugin');
var webpackConfig = {
entry: 'index.js',
output: {
path: __dirname + '/dist',
filename: 'index_bundle.js'
},
plugins: [new VisualforceHtmlPlugin(/* config */)]
};
Since Visualforce pages can have multiple references to your Salesforce organization, it is possible to "mock" most of them using the VisualforceHtmlPlugin configuration file
var config = {
SalesforceContext: {
CustomModifiers: {
'<MyNameSpace:MyComponent.*?></MyNameSpace:MyComponent>':
`<script src="myscripts/mystuff.js"></script>
<link rel="stylesheet" href="mycss/mystuff.css"/>`
},
Resources: {
jquery: "jquery/dist/"
},
Controllers: {
MyController: {
foo: "bar",
fooFile: { file: "bar.json" }
}
}
}
};
This configuration will resolve $Resource.jquery
and {!foo}
in your pages allowing you to use the same <apex:stylesheet>
and <apex:includeScript>
imports you would in Salesforce.
The CustomModifiers option allow to specify a regex to match a resource in your Visualforce page, and the content with which to replace it.