@wgoo/cli
Version:
Wgoo Cli 是一个 React 组件库构建工具,通过 Wgoo Cli 可以快速搭建一套功能完备的 React 组件库。
51 lines (40 loc) • 1.16 kB
JavaScript
const { join } = require('path');
const {
camelize,
pascalize,
getComponents,
smartOutputFile,
normalizePath,
} = require('../common');
const { SRC_DIR, getPackageJson } = require('../common/constant');
function genImports(components, options) {
return components
.map((name) => {
let path = join(SRC_DIR, name);
if (options.pathResolver) {
path = options.pathResolver(path);
}
return `import ${name.startsWith('$') ? camelize(name) : pascalize(name)} from '${normalizePath(path)}';`;
})
.join('\n');
}
function genExports(names) {
return names.map((name) => `${name}`).join(',\n ');
}
function genPackageEntry(options) {
const names = getComponents();
const version = process.env.PACKAGE_VERSION || getPackageJson().version;
const components = names.map(name => name.startsWith('$') ? camelize(name) : camelize(pascalize(name)));
const content = `${genImports(names, options)}
const version = '${version}';
export {
version,
${genExports(components)}
};
export default {
version
};
`;
smartOutputFile(options.outputPath, content);
}
module.exports = { genPackageEntry };