UNPKG

npm-pkg-kit

Version:

CLI tool to simplify NPM package creation by generating boilerplate setup

60 lines (45 loc) 1.27 kB
import { join } from 'path' import { exec, mkdir, rm } from 'shelljs' import git from '../cmd/opt/git' import ignore from '../cmd/tpl/npm/ignore' import { readJSON, writeContent, writeJSON } from './files' const base = process.cwd() const prettier = { semi: false, singleQuote: true, trailingComma: 'all', } export function npm(dir: string) { const init = `cd ${dir} && npm init -y && npm i -D husky npm-run-all shx prettier` exec(init) writeContent(dir, '.npmignore', ignore) const pack = readJSON(dir, 'package.json') delete pack.scripts.test pack.version = '0.0.0' pack.husky = { hooks: { 'pre-commit': 'npm run lint && git add .', }, } Object.assign(pack.scripts, { clean: 'shx rm -rf dist', major: 'npm version major && npm run push', minor: 'npm version minor && npm run push', patch: 'npm version patch && npm run push', prepare: 'npm run dist', push: 'git push && git push --tags', }) delete pack.main writeJSON(dir, '.prettierrc.json', prettier, 2) writeJSON(dir, 'package.json', pack, 2) } export function gen(name: string) { const dir = join(base, name) if (name !== '.' && name !== './') { rm('-rf', dir) mkdir('-p', dir) } git(dir) npm(dir) return dir }