mirror of
https://github.com/primer/css.git
synced 2024-12-12 10:47:14 +03:00
107 lines
2.9 KiB
Markdown
107 lines
2.9 KiB
Markdown
# Primer Module Generator
|
|
|
|
[![npm version](https://img.shields.io/npm/v/generator-primer-module.svg)](https://www.npmjs.org/package/generator-primer-module)
|
|
[![Build Status](https://travis-ci.org/primer/primer.svg?branch=master)](https://travis-ci.org/primer/primer)
|
|
|
|
Primer is the CSS framework that powers GitHub's front-end design. This is a
|
|
[Yeoman] generator that we use to scaffold new Primer modules.
|
|
|
|
## Usage
|
|
|
|
### In the Monorepo
|
|
|
|
1. `cd` to the top level directory of the `primer` repository
|
|
1. Run:
|
|
|
|
```sh
|
|
npm run new-module
|
|
```
|
|
|
|
You can also pass the module name as a positional argument like this:
|
|
|
|
```sh
|
|
npm run new-module -- primer-module-name
|
|
```
|
|
|
|
1. Answer the interactive prompts.
|
|
|
|
> If you don't know some of the answers (aside from the module name, which
|
|
> is required), it's okay to press <kbd>enter</kbd> or <kbd>return</kbd>.
|
|
|
|
1. If all goes well, the new module will be bootstrapped and ready to use. You
|
|
should see a directory with this structure:
|
|
|
|
```
|
|
modules/primer-module-name/
|
|
├── LICENSE
|
|
├── README.md
|
|
├── index.scss
|
|
├── lib
|
|
│ └── module-name.scss
|
|
└── package.json
|
|
```
|
|
|
|
1. If you have any TODOs left from unanswered prompts, fill them out! You can
|
|
list them again with:
|
|
|
|
```sh
|
|
ack TODO modules/primer-module-name
|
|
```
|
|
|
|
(Note: you can use `grep` if you don't have `ack` installed.)
|
|
|
|
|
|
### Standalone installation
|
|
|
|
This repository is distributed with [npm][npm]. After [installing
|
|
npm][install-npm], you can install `generator-primer-module` with this command.
|
|
|
|
```sh
|
|
npm install --save generator-primer-module
|
|
```
|
|
|
|
You'll also need to install the [`yo` CLI](https://github.com/yeoman/yo):
|
|
|
|
```sh
|
|
npm install -g yo
|
|
```
|
|
|
|
### Standalone usage
|
|
|
|
It's possible to use this generator to create "standalone" Primer modules that
|
|
live outside of the Primer monorepo, with the following caveats:
|
|
|
|
* When prompted to add the new module to existing meta-packages, you will need
|
|
to un-select them all.
|
|
* You will also need to manually install all of the monorepo's top-level devDependencies to get tools like `primer-module-build` and `ava`.
|
|
* The `npm test` command will not work, because it references a test spec in
|
|
the monorepo.
|
|
|
|
To run the generator, just pass `primer-module` to the `yo` CLI:
|
|
|
|
```sh
|
|
yo primer-module
|
|
```
|
|
|
|
Then answer the interactiv prompts. **Note that, unlike most other generators,
|
|
this one creates a new directory with the provided module name in the current
|
|
working directory.**
|
|
|
|
You can also pass the module name as a positional argument, as in:
|
|
|
|
```sh
|
|
yo primer-module primer-foo-bar
|
|
```
|
|
|
|
|
|
## License
|
|
|
|
[MIT](./LICENSE) © [GitHub](https://github.com/)
|
|
|
|
[primer]: https://github.com/primer/primer
|
|
[docs]: http://primer.github.io/
|
|
[npm]: https://www.npmjs.com/
|
|
[install-npm]: https://docs.npmjs.com/getting-started/installing-node
|
|
[sass]: http://sass-lang.com/
|
|
[yeoman]: http://yeoman.io
|