This project has been archived. If you need to create a new terra package in any of the mono repos, copy an existing module.
Quickly scaffold terra modules with this yeoman generator
First, install Yeoman and generator-terra-module using npm (we assume you have pre-installed node.js).
npm install -g yo
npm install -g generator-terra-module
Then generate your new project:
npx yo terra-module
From here, you will be prompted with two messages:
Terra repository:
Inputterra-core
,terra-clinical
,terra-consumer
, orterra-framework
. It defaults toterra-core
if no input is provided.Your module name:
Input the desired name of the react component being created. Note: the first prompt handles the name space prefixes.
Your new project will be generated in the packages directory of the chosen repository.
Given the module name button
, the following directory structure would be generated inside of the related monorepos.
terra-button
├──docs
│ └── README.md // The component README that appears on the documenation site
├──src
│ ├──terra-dev-site
│ │ ├──doc
│ │ │ ├──Button
│ │ │ │ ├──Button.1.doc.jsx // Doc template that imports all the examples into one page
│ │ │ │ └──ChangeLog.2.doc.jsx // This imports and renders the CHANGELOG.md file
│ │ │ └──example
│ │ │ └──DefaultButton.jsx // Default component example used in doc site
│ │ └──test
│ │ └──button
│ │ └──DefaultButton.test.jsx // Default component example used in wdio testing
│ ├──Button.jsx // Source code for react component
│ └──Button.module.scss // Source code for component styles
├──tests
│ └──jest
│ │ └──DefaultButton.test.jsx // Jest test file
│ └──wdio
│ └──button-spec.js // Webdriver.io test file
├──.npmignore // Contains files we don't want to include in npm package
├──.npmrc // Specifies npm package config
├──CHANGELOG // Contains component change log history
├──LICENSE // License used with component package
├──NOTICE // Notice used with component package
├──package.json // NPM Package metadata
└──README.md // The component README that appears on NPM
After generating the project, add your package to the packages listed in the README.md file of the repository you created the project in.
Now you are ready to start building your terra module!
To update the generator to the latest release, run the following command.
npm install -g generator-terra-module
See CONTRIBUTING.md
Copyright 2016 - 2020 Cerner Innovation, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.