aacm makes components and styles for you.
aacm is meant to be installed globally, then used from your app's src/ directory (or equivalent).
$ sudo npm i -g aacm
aacm [flags] <ComponentName>
For example,
$ aacm ItemDetail
gives you...
./components/ItemDetail/ItemDetail.jsx
import React from 'react';
import './ItemDetail.scss';
function ItemDetail() {
return (
<div className="ItemDetail">
</div>
);
}
export default ItemDetail;
and
./components/ItemDetail/ItemDetail.scss
.ItemDetail {
}
Now multiply that by every component you'll ever create and you've saved yourself some time. =)
You can pass in multiple component names at once, like so...
$ aacm Header Body Footer
This creates...
.
└── components
├── Body
│ ├── Body.jsx
│ └── Body.scss
├── Footer
│ ├── Footer.jsx
│ └── Footer.scss
└── Header
├── Header.jsx
└── Header.scss
according to the flags.
| Flag | Effect |
|---|---|
| -c, --class | Generates class components |
| Uses modern syntax | |
| -f, --functional | Generates functional components |
| This is the default | |
| -h, --help | Shows available flags |
| -i, --asi | Confidence Mode |
| Use Automatic Semicolon Insertion | |
| -k, --kebab | Makes the generated directories |
| and file names use kebab-case | |
| -V, --version | Shows version number |
| --css | Generates CSS |
| (default is SCSS) | |
| --old-class | Generates class components |
| Uses classic syntax | |
| --features | Outputs to features/ |
| (default is components/) |
Any of these may be combined.
For example, aacm ItemDetail -ik
generates
./components/item-detail/item-detail.scss
and
./components/item-detail/item-detail.jsx (semicolon free).