npm-pkg-kit
Version:
CLI tool to simplify NPM package creation by generating boilerplate setup
54 lines (53 loc) • 1.74 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.gen = exports.npm = void 0;
const path_1 = require("path");
const shelljs_1 = require("shelljs");
const git_1 = __importDefault(require("../cmd/opt/git"));
const ignore_1 = __importDefault(require("../cmd/tpl/npm/ignore"));
const files_1 = require("./files");
const base = process.cwd();
const prettier = {
semi: false,
singleQuote: true,
trailingComma: 'all',
};
function npm(dir) {
const init = `cd ${dir} && npm init -y && npm i -D husky npm-run-all shx prettier`;
shelljs_1.exec(init);
files_1.writeContent(dir, '.npmignore', ignore_1.default);
const pack = files_1.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;
files_1.writeJSON(dir, '.prettierrc.json', prettier, 2);
files_1.writeJSON(dir, 'package.json', pack, 2);
}
exports.npm = npm;
function gen(name) {
const dir = path_1.join(base, name);
if (name !== '.' && name !== './') {
shelljs_1.rm('-rf', dir);
shelljs_1.mkdir('-p', dir);
}
git_1.default(dir);
npm(dir);
return dir;
}
exports.gen = gen;