@travi/javascript-scaffolder v14.14.7
javascript-scaffolder
opinionated scaffolder for JavaScript projects
Table of Contents
- Features
- Usage
- Installation
- As one of the languages for scaffolding a project
- Example
- Options
projectRootstring (required)projectNamestring (required)visibilitystring (required)licensestring (required)vcsobject (required)descriptionstring (optional)configsobject (optional)overridesobject (optional)registriesobject (optional)ciServicesobject (optional)applicationTypesobject (optional)unitTestFrameworksobject (required)
- Contributing
- Related Projects
Features
- Sets the node.js version to the latest or LTS version (your choice) using nvm
- Scaffolds the
package.json- Enables linting of:
- JavaScript with ESLint
- Markdown with remark-lint
- Peer-dependency compatibiltiy (by running
npm lsand ensuring a0exit code) - Sensitive files to prevent commiting secrets using ban-sensitive-files
- The
.travis.ymlusing travis-lint, when Travis is the chosen CI
- Enables linting of:
- Enables transpilation with Babel
- Defines and enforces the commit message convention
- Defines badges for inclusion in the
README.md - Defines files to be ignored from
gitandnpm - Scaffolds CI service config from the user choice of the provided scaffolders
Usage
Installation
$ npm install @travi/javascript-scaffolder --save-prodAs one of the languages for scaffolding a project
This scaffolder is intended to be used to scaffold the language specific details within the project-scaffolder.
Example
Dependencies:
import yargs from 'yargs';
import {scaffold} from '@form8ion/project';
import {scaffold as scaffoldJavaScript} from './lib/index.cjs';Register with yargs
yargs
.scriptName('form8ion-utils')
.usage('Usage: $0 <cmd> [args]')
.command('scaffold', 'Scaffold a new project', () => scaffold({
languages: {
JavaScript: options => scaffoldJavaScript({
...options,
configs: {
eslint: {scope: '@form8ion'},
remark: '@form8ion/remark-lint-preset',
babelPreset: {name: '@form8ion', packageName: '@form8ion/babel-preset'},
commitlint: {name: '@form8ion', packageName: '@form8ion/commitlint-config'}
},
overrides: {npmAccount: 'form8ion'},
ciServices: {}
})
},
overrides: {copyrightHolder: 'Matt Travi'}
}))
.help('h')
.alias('h', 'help')
.argv;Options
projectRoot string (required)
path to the root of the project
projectName string (required)
name of the project (w/o a scope)
visibility string (required)
visibility of the project (Public or Private)
license string (required)
vcs object (required)
hoststring (required) VCS hosting serviceownerstring (required) account name on the host service for the repositorynamestring (required) repository name
description string (optional)
short summary of the project
configs object (optional)
eslint: object (optional) details about the shareable config to be used for the projectpackageNamestring (required) name of thenpmpackageprefixstring (required) name to be used when referring to the config within the.eslintrcfiles
:warning: while i'm not confident that it is the recommended convention, it is assumed the defined config has a
rules/directory exposed from the package with rulesets defined fores6.jstests/base.jstests/mocha.js
commitlintobject (optional) details about the shareable config to be used for the projectpackageNamestring (required) name of thenpmpackagenamestring (required) name to be used when referring to the config within the.commitlintrc.jsfile
babelPresetobject (optional) details about the preset to be used for the projectpackageNamestring (required) name of thenpmpackagenamestring (required) shorthand name to be used when referring to the config
overrides object (optional)
npmAccountstring (optional) the account the package should be published under. used to suggest a scope. defaults to$ npm whoamiauthorobject (optional) details about the package authornamestring (required) defaults to$npm config get init.author.nameemailstring (optional) defaults to$npm config get init.author.emailurlstring (optional) defaults to$npm config get init.author.url
registries object (optional)
- keys: string Scope of packages related to this registry (without the
@) - values: string URL for the registry
ciServices object (optional)
- keys: string Name of the service
- values: object
scaffolder: function (required) scaffolds the ci service optionspublic: boolean (optional) whether this service should be presented as a public optionprivate: boolean (optional) whether this service should be presented as a private option
applicationTypes object (optional)
- keys: string Name of the type of application
- values: object
scaffolderfunction (required) scaffolds the application
unitTestFrameworks object (required)
frameworks to be passed to the unit-testing scaffolder
Contributing
Dependencies
$ nvm install
$ npm installVerification
$ npm testRelated Projects
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago