configure webpack.config.js to build organic frontend web cells
- Bundles DNA configuration loaded by organic-dna-loader
- then transforms a build branch so that organelles can be resolved required/bundled
- finally export the selected DNA and bundle it along with webpack
dnaSourcePaths
- Array, holds full paths to dna source directories to loadselectBranch
- String, dot notated branch path to select for inclusion into the bundle. Leave undefined to use the whole dna.transformBranch
- Function, optional. Used to transform async selected branch. Has signatureasync function transformBranch (selectedBranch)
resolving to a DNA branch to be bundled.buildBranch
- String, branch name within selected dna to transform any organellesource
property paths asrequire
sexportName
- String, defaults towindow.DNA
value which will be used to globally provide the bundled DNAdnaMode
- String, indicates the mode which will be applied on the loaded DNA. Defaults toprocess.env.CELL_MODE
- as
Object
- the usually exported webpack.config.js configuration object - as
function webpackConfig (dna):<Promise>
- decorator function receives the whole loaded DNA and returns webpack.config.js configuration object or a promise for it.
// webpack.config.js
const path = require('path')
const webcell = require('webpack-organic-webcell-configurator')
const BUILD_MODE = process.env.NODE_ENV === 'production' ? 'production' : 'development'
module.exports = webcell({
dnaSourcePaths: [
path.join(__dirname, 'dna')
],
buildBranch: 'build',
selectBranch: 'cells.frontend-cell',
exportName: 'window.DNA',
dnaMode: BUILD_MODE
}, {
mode: BUILD_MODE,
entry: './main.js'
})
module.exports = webcell(options, function (dna) {
return webpackConfig
})
module.exports = webcell(options, async function (dna) {
// ... await async operations
return webpackConfig
})