chadhietala/broccoli-rollup(新しいタブで開きます)
主要言語: JavaScript
Broccoli Plugin For Rollup
- star 数
- 36
- watcher 数
- 5
- fork 数
- 22
- issue 数
- 10
- 最終更新
- 2023/05/21
主要言語: JavaScript
Broccoli Plugin For Rollup
A broccoli plugin that uses rollup.js on its input.
// Brocfile.js import rollup from 'broccoli-rollup'; export default () => rollup('lib', { // nodeModulesPath: string Defaults to process.cwd() rollup: { input: 'index.js', output: { file: 'bundle.js', format: 'es', }, }, });
// Brocfile.js import rollup from 'broccoli-rollup'; export default () => rollup('lib', { // nodeModulesPath: string Defaults to process.cwd() rollup: { input: 'index.js', output: { dir: 'chunks', format: 'es', }, }, });
// Brocfile.js import rollup from 'broccoli-rollup'; export default () => rollup('lib', { // nodeModulesPath: string Defaults to process.cwd() rollup: { input: 'index.js', output: [ { file: 'my-lib.amd.js', format: 'amd', }, { file: 'my-lib.iife.js', name: 'MyLib', format: 'iife', }, ], }, });
Broccoli is designed around immutable input and although rollup does expose enough
in the build output for us to write it to disk, this doesn't work with the onwrite plugin hook
and requires a significant amount of code to get feature parity with rollup's
buildOutput.write(outputOptions).
We use the following build flow to achieve compatibility and feature parity with rollup's cli while still adhering to broccoli's immutable input constraints.
node.inputPaths[0] to ${node.cachePath}/buildoptions.nodeModulesPath to ${node.cachePath}/node_modules${node.cachePath}/build (rollup doesn't allow this to be passed in and plugins may also the use cwd)${node.cachePath}/build to node.outputPath for all files that are different from the input.If you have any plugins that require hard-coded paths into node_modules,
please note that node_modules is symlinked above the build path.
So instead of doing node_modules/x you need to do ../node_modules/x.