newkit-cli
Version:
Newkit cli tools.
23 lines (21 loc) • 1.01 kB
JavaScript
const fs = require('fs');
const path = require('path');
const util = require('./../lib/util');
module.exports = (moduleName) => {
let cwd = process.cwd();
let modulePath = path.join(cwd, 'src/modules', moduleName);
if (!fs.existsSync(modulePath)) {
return util.error('Module not found, please check input.');
}
const tsconfigTpl = require('./tsconfig_tpl.json');
let tsconfigTplCopy = Object.assign({}, tsconfigTpl);
tsconfigTplCopy.compilerOptions.declarationDir = path.join(cwd, `node_modules/@types/newkit/${moduleName}`);
let configFilePath = path.join(cwd, 'src/modules/', moduleName, 'tsconfig.json');
fs.writeFileSync(configFilePath, JSON.stringify(tsconfigTplCopy, null, ' '));
cd(`./src/modules/${moduleName}`);
exec('tsc');
cd('../../../'); // 退回到根目录
rm('-rf', configFilePath);
fs.writeFileSync(`./node_modules/@types/newkit/${moduleName}/index.d.ts`, `export * from './app';`, 'utf8');
util.info(`Generate module '${moduleName}' declaration file successfully.`);
};