@minolettinat/proxy-figma-export-output-components-as-svgr v4.5.1
@figma-export/output-components-as-svgr
Outputter for @figma-export that exports components as React components.
With this outputter you can export all Figma components as React components into the specified output folder.
This is a sample of the output from this Figma file:
$ tree output/
# output
# ├── icons
# │ ├── FigmaArrow.jsx
# │ ├── FigmaExport.jsx
# │ ├── FigmaLogo.jsx
# │ └── index.js
# └── unit-test
# ├── figma
# │ ├── logo
# │ │ ├── Main.jsx
# │ │ ├── MainBright.jsx
# │ │ └── index.js
# │ ├── Logo.jsx
# │ └── index.js
# ├── FigmaDefaultLogo.jsx
# └── index.jsTip: A figma component named
icon/eyewill be exported asEye.jsxinside theiconfolder. Anotherindex.jsfile will be created inside theiconfolder and this will export directly theEyecomponent.
.figmaexportrc.js
You can easily add this outputter to your .figmaexportrc.js:
module.exports = {
commands: [
['components', {
fileId: 'fzYhvQpqwhZDUImRz431Qo',
onlyFromPages: ['icons', 'unit-test'],
outputters: [
require('@figma-export/output-components-as-svgr')({
output: './output'
})
]
}],
]
}output is mandatory.
getDirname, getComponentName, getComponentFilename, getFileExtension, getExportTemplate and getSvgrConfig are optional.
const path = require('path');
const { pascalCase } = require('@minolettinat/proxy-figma-export-utils');
...
require('@figma-export/output-components-as-svgr')({
output: './output',
getDirname: (options) => `${options.pageName}${path.sep}${options.dirname}`,
getComponentName: (options) => `${pascalCase(options.basename)}`,
getComponentFilename = (options): string => `${getComponentName(options)}`,
getFileExtension: (options) => '.jsx',
getSvgrConfig: (options) => ({}),
getExportTemplate = (options): string => {
const reactComponentName = getComponentName(options);
const reactComponentFilename = `${getComponentFilename(options)}${getFileExtension(options)}`;
return `export { default as ${reactComponentName} } from './${reactComponentFilename}';`;
},
})defaults may change, please refer to
./src/index.ts
getComponentFilename if not set, it will use the same value for getComponentName.
getSvgrConfig is a function that returns the SVGR configuration object.
Install
Using npm:
npm install --save-dev @figma-export/output-components-as-svgror using yarn:
yarn add @figma-export/output-components-as-svgr --dev3 years ago