Skip to content

boldr/boldr-plugin-webpack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boldr-plugin-webpack

Webpack plugin designed for use with Boldr.

Usage

Install the plugin in your project directory, yarn add --dev @boldr/plugin-webpack.
Edit your boldr.config.js file to "require" the plugin.

// boldr.config.js
module.exports = {
  env: {...},
  plugins:[require('@boldr/plugin-webpack')],
  bundle: {...},
}

Once required in your package.json, the boldr dev and boldr build commands within Boldr CLI will function appropriately.

If you do not have Boldr CLI installed, go ahead and install it globally with npm install -g @boldr/cli.

Configuration

Boldr uses a file, boldr.config.js in the root of your project directory for bundling and CLI command configuration. Create the file if you don't already have one for your project.

Make sure you have dotenv installed as a dependency, as well as have created a .env file. The .env file should contain the values within the env section below.

The vendor array within the bundle object is used to create a vendor DLL bundle (during development) and a common vendor bundle for production. It's important to include all project browser dependencies in this array. Otherwise, the files will be bundled with your project code.

// boldr.config.js

const path = require('path');
const dotenv = require('dotenv');
dotenv.load();
const base = (...args) => Reflect.apply(resolve, null, [path.resolve(__dirname), ...args])

module.exports = {
  env: {
    NODE_ENV: process.env.NODE_ENV,
    BOLDR_SERVER_PORT: process.env.BOLDR_SERVER_PORT,
    BOLDR_DEV_PORT: process.env.BOLDR_DEV_PORT,
    BOLDR_DEBUG: process.env.BOLDR_DEBUG,
    BOLDR_GRAPHQL: process.env.BOLDR_GRAPHQL,
  },
  plugins: [require('boldr-plugin-webpack')],
  bundle: {
    base,
    graphlUrl: 'http://localhost:3000/api/v1/graphql',
    verbose: true,
    debug: true,
    cssModules: true,
    wpProfile: false,
    webPath: '/assets/',
    publicDir: path.resolve(__dirname, 'public'),
    assetsDir: path.resolve(__dirname, 'dist/assets'),
    srcDir: path.resolve(__dirname, 'src'),
    client: {
      entry: path.resolve(__dirname, 'src/client/index.js'),
      admin: path.resolve(__dirname, 'src/client/admin.js'),
      bundleDir: path.resolve(__dirname, 'dist/assets'),
    },
    server: {
      entry: path.resolve(__dirname, 'src/server/index.js'),
      bundleDir: path.resolve(__dirname, 'dist'),
    },
    vendor: [
      'apollo-client',
      'axios',
      'boldr-ui',
      'boldr-utils',
      'classnames',
      'date-fns',
      'draft-convert',
      'draft-js',
      'draftjs-utils',
      'graphql-tag',
      'griddle-react',
      'lodash',
      'hoist-non-react-statics',
      'material-ui',
      'material-ui-icons',
      'prop-types',
      'react',
      'react-apollo',
      'react-dom',
      'react-dropzone',
      'react-helmet',
      'react-motion',
      'data-driven-motion',
      'react-redux',
      'react-router-dom',
      'react-router-redux',
      'react-tap-event-plugin',
      'react-transition-group',
      'redux',
      'redux-form',
      'redux-thunk',
      'reselect',
      'serialize-javascript',
      'styled-components',
      'uuid',
      'webfontloader',
    ],
  },
};

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published