rollup-plugin-drupal-sdc-generator
v1.2.10
Published
This is a [Rollup](https://rollupjs.org) plugin that creates [single directory components](https://www.drupal.org/docs/develop/theming-drupal/using-single-directory-components) for embedding your app in a [Drupal](https://www.drupal.org) module or theme.
Readme
Rollup Plugin for Drupal to Generate Single Directory Components (SDCs)
This is a Rollup plugin that creates single directory components for embedding your app in a Drupal module or theme.
Installation
npm install --save-dev rollup-plugin-drupal-sdc-generatorEjecting templates
Copy the default templates into your project so you can customize them:
# Copy templates to a directory relative to your current location
npx drupal-sdc-eject ./vite
# Copy to a different path
npx drupal-sdc-eject ../custom-templatesThen point the directory option at the copied templates (see Options).
Usage
import drupalSdcGenerator from 'rollup-plugin-drupal-sdc-generator';
// https://rollupjs.org/configuration-options/
export default {
input: 'main.js',
plugins: [drupalSdcGenerator()],
};This plugin can be used with Vite.
import { defineConfig } from 'vite';
import drupalSdcGenerator from 'rollup-plugin-drupal-sdc-generator';
// https://vitejs.dev/config/
export default defineConfig({
root: 'js',
build: {
rollupOptions: {
input: 'js/main.js',
plugins: [drupalSdcGenerator()],
},
},
});Options
directory
Type
: string | object = { "{component-name}": string }
Default
: "node_modules/rollup-plugin-drupal-sdc-generator/templates"
The directory where your SDC's [{component-name}].component.yml,
[{component-name}].twig, and other files that will be included with the built
single directory component.
When a string is provided, the templates in the directory passed in are used on all generated single directory components.
When an object is provided, the templates in the directory passed in are used for the component names specified by the object's keys.
In your templates, [name] will be replaced with the value of
{component-name}, too. Use [[name]] if you want the string [name] included
verbatim.
drupalSdcGenerator({ directory: 'vite/shared' });
drupalSdcGenerator({
directory: {
'my-component': 'vite/my-component',
},
});label
Type
: string | object = { "{component-name}": string }
Default
: "My Component"
This is a descriptive name for your SDC.
In your templates, [label] will be replaced with the value of this variable.
Use [[label]] if you want the string [label] included verbatim.
drupalSdcGenerator({ label: 'Best SDC ever!' });
drupalSdcGenerator({
label: {
'my-component': 'Best SDC ever!',
},
});group
Type
: string | object = { "{component-name}": string }
Default
: undefined
This is the group that your SDC belongs to in Drupal's component organization.
When provided, a group field will be added to your component's metadata.
drupalSdcGenerator({ group: 'Navigation' });
drupalSdcGenerator({
group: {
'my-component': 'Navigation',
'other-component': 'Content',
},
});The Exploratorium is a 501(c)(3) nonprofit organization. Our tax ID #: 94-1696494
https://www.exploratorium.edu
