Skip to main content

Examples

Example files

Input

  • Input file path:

    project → scaffold → {{Name}}.js → src → components
  • Input file contents:

    /**
    * Author: {{ author }}
    * Date: {{ now "yyyy-MM-dd" }}
    */
    import React from 'react'

    export default {{camelCase name}}: React.FC = (props) => {
    return (
    <div className="{{className}}">{{camelCase name}} Component</div>
    )
    }

Output

  • Output file path:

    • With subdir = false (default):

      project → src → components → MyComponent.js
    • With subdir = true:

      project → src → components → MyComponent → MyComponent.js
    • With subdir = true and subdirHelper = 'upperCase':

      project → src → components → MYCOMPONENT → MyComponent.js
  • Output file contents:

    /**
    * Author: My Name
    * Date: 2077-01-01
    */
    import React from 'react'

    export default MyComponent: React.FC = (props) => {
    return (
    <div className="myClassName">MyComponent Component</div>
    )
    }

Example run commands

Command Example

simple-scaffold \
-t project/scaffold/**/* \
-o src/components \
-d '{"className": "myClassName","author": "My Name"}'
MyComponent

Equivalent Node Module Example

import Scaffold from "simple-scaffold"

async function main() {
await Scaffold({
name: "MyComponent",
templates: ["project/scaffold/**/*"],
output: ["src/components"],
data: {
className: "myClassName",
author: "My Name",
},
})
console.log("Done.")
}

Re-usable config

Shell

# cjs
simple-scaffold -c scaffold.cjs MyComponent \
-d '{"className": "myClassName","author": "My Name"}'
# mjs
simple-scaffold -c scaffold.mjs MyComponent \
-d '{"className": "myClassName","author": "My Name"}'

scaffold.cjs

module.exports = (config) => ({
default: {
templates: ["project/scaffold/**/*"],
output: ["src/components"],
data: {
className: "myClassName",
author: "My Name",
},
},
})

scaffold.mjs

export default (config) => ({
default: {
templates: ["project/scaffold/**/*"],
output: ["src/components"],
data: {
className: "myClassName",
author: "My Name",
},
},
})