@hubspot/webpack-cms-plugins
v6.3.0
Published
Webpack plugins for using with the HubSpot CMS
Maintainers
Keywords
Readme
@hubspot/webpack-cms-plugins
The @hubspot/webpack-cms-plugins packages contains plugins designed to make using webpack to compile HubSpot CMS assets more straightforward. Instead of using webpack-dev-server, the idea is to generate assets locally and then upload them to the HubSpot CMS for previewing and testing. The plugin is designed to work together with @hubspot/cli.
Why is this needed?
This plugin makes it easy to use webpack-compiled assets in HubSpot CMS modules and templates. This makes it easy and seamlessly add a compilation step to the local development flow, and enables testing using real HubSpot content.
Usage
- Configure HubSpot local development tools.
- Add the plugin to your
webpack.config.js. Thesrcshould be a path to the directory where the webpack compiled code is output and thedestproperty is the path where the assets should be uploaded in your HubSpot account.
Example webpack.config.js
const HubSpotAutoUploadPlugin = require('@hubspot/webpack-cms-plugins/HubSpotAutoUploadPlugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = ({ account, autoupload }) => ({
entry: './src/index.js',
output: {
filename: 'js/main.js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
{
test: /\.s[ac]ss$/i,
use: [
'style-loader',
{ loader: 'css-loader', options: { url: false } },
'sass-loader',
],
},
],
},
plugins: [
new HubSpotAutoUploadPlugin({
autoupload,
account,
src: 'dist',
dest: 'my-project',
}),
new CopyWebpackPlugin({
patterns: [
{ from: 'src/images', to: 'images' },
{ from: 'src/templates', to: 'templates' },
]
}),
],
});- Run
webpack --watch --env account 123 --env autouploadto compile your project and automatically upload assets. Replace123with your unique Hub ID.
