diff --git a/devui-cli/commands/create.mjs b/devui-cli/commands/create.js similarity index 86% rename from devui-cli/commands/create.mjs rename to devui-cli/commands/create.js index 197dff1a10ee03a32b6fadf5ab376597d1033aea..b97554380b2c3ddc915d7b2ca86805360f38b736 100644 --- a/devui-cli/commands/create.mjs +++ b/devui-cli/commands/create.js @@ -1,8 +1,8 @@ -import logger from '../shared/logger.mjs' -import { bigCamelCase, resolveDirFilesInfo, parseExportByFileInfo } from '../shared/utils.mjs' -import fs from 'fs-extra' -import { resolve } from 'path' -import { +const logger = require('../shared/logger') +const { bigCamelCase, resolveDirFilesInfo, parseExportByFileInfo } = require('../shared/utils') +const fs = require('fs-extra') +const { resolve } = require('path') +const { DEVUI_NAMESPACE, DEVUI_DIR, TESTS_DIR_NAME, @@ -11,12 +11,12 @@ import { VUE_DEVUI_FILE, VUE_DEVUI_IGNORE_DIRS, VUE_DEVUI_FILE_NAME -} from '../shared/constant.js' -import { isEmpty, kebabCase } from 'lodash-es' -import inquirer from 'inquirer' -import { selectCreateType } from '../inquirers/create.mjs' -import { selectCategory, selectParts, typeName, typeTitle } from '../inquirers/component.mjs' -import { +} = require('../shared/constant') +const { isEmpty, kebabCase } = require('lodash') +const inquirer = require('inquirer') +const { selectCreateType } = require('../inquirers/create') +const { selectCategory, selectParts, typeName, typeTitle } = require('../inquirers/component') +const { createComponentTemplate, createStyleTemplate, createTypesTemplate, @@ -24,11 +24,11 @@ import { createServiceTemplate, createIndexTemplate, createTestsTemplate -} from '../templates/component.mjs' -import { createVueDevuiTemplate } from '../templates/vue-devui.mjs' -import ora from 'ora' +} = require('../templates/component') +const { createVueDevuiTemplate } = require('../templates/vue-devui') +const ora = require('ora') -export function validateCreateType(type) { +exports.validateCreateType = (type) => { const flag = /^(component|(vue-devui)|(vitepress\/sidebar))$/.test(type) !flag && logger.error('类型错误,可选类型为:component, vue-devui, vitepress/sidebar') @@ -36,7 +36,7 @@ export function validateCreateType(type) { return flag ? type : null } -export async function create(cwd) { +exports.create = async (cwd) => { let { type, ignoreParseError } = cwd if (isEmpty(type)) { diff --git a/devui-cli/index.mjs b/devui-cli/index.js similarity index 70% rename from devui-cli/index.mjs rename to devui-cli/index.js index 9ad3ce6045f95a14b99d992187c2e748fcf67555..0ff397d5779cf56ca0eb4ac380feb86bd82369d2 100644 --- a/devui-cli/index.mjs +++ b/devui-cli/index.js @@ -1,7 +1,7 @@ #!/usr/bin/env node -import { Command } from 'commander' -import { create, validateCreateType } from './commands/create.mjs' -import { VERSION } from './shared/constant.js' +const { Command } = require('commander') +const { create, validateCreateType } = require('./commands/create') +const { VERSION } = require('./shared/constant') const program = new Command() diff --git a/devui-cli/inquirers/component.mjs b/devui-cli/inquirers/component.js similarity index 84% rename from devui-cli/inquirers/component.mjs rename to devui-cli/inquirers/component.js index f814d0f6f5a061090eb5046c739a28201f21618d..d4d2362b414ab86e0dcd3b32d467ac4b34a05afb 100644 --- a/devui-cli/inquirers/component.mjs +++ b/devui-cli/inquirers/component.js @@ -1,6 +1,6 @@ -import { COMPONENT_PARTS_MAP } from '../shared/constant.js' +const { COMPONENT_PARTS_MAP } = require('../shared/constant') -export const typeName = () => ({ +exports.typeName = () => ({ name: 'name', type: 'input', message: '(必填)请输入组件 name ,将用作目录及文件名:', @@ -12,7 +12,7 @@ export const typeName = () => ({ } }) -export const typeTitle = () => ({ +exports.typeTitle = () => ({ name: 'title', type: 'input', message: '(必填)请输入组件中文名称,将用作文档列表显示:', @@ -24,7 +24,7 @@ export const typeTitle = () => ({ } }) -export const selectCategory = () => ({ +exports.selectCategory = () => ({ name: 'category', type: 'list', message: '(必填)请选择组件分类,将用作文档列表分类:', @@ -32,13 +32,13 @@ export const selectCategory = () => ({ default: 0 }) -export const typeAliasName = () => ({ +exports.typeAliasName = () => ({ name: 'alias', type: 'input', message: '(选填)请输入组件 name 别名,将用作组件别名被导出:' }) -export const selectParts = () => ({ +exports.selectParts = () => ({ name: 'parts', type: 'checkbox', message: '(必填)请选择包含部件,将自动生成部件文件:', diff --git a/devui-cli/inquirers/create.mjs b/devui-cli/inquirers/create.js similarity index 79% rename from devui-cli/inquirers/create.mjs rename to devui-cli/inquirers/create.js index 74fb951057d5afa29b4e41c9e9de89ebd29a9f1a..f582f31a066b848d2d4f33dae78856d64698f31d 100644 --- a/devui-cli/inquirers/create.mjs +++ b/devui-cli/inquirers/create.js @@ -1,4 +1,4 @@ -export const selectCreateType = () => ({ +exports.selectCreateType = () => ({ name: 'type', type: 'list', message: '(必填)请选择创建类型:', diff --git a/devui-cli/shared/logger.mjs b/devui-cli/shared/logger.js similarity index 84% rename from devui-cli/shared/logger.mjs rename to devui-cli/shared/logger.js index a8b4d50e3c879f1dfa4dad1a259ec3260dc42783..4b97da0e33d88dd6405d4b16747d46d099617f4f 100644 --- a/devui-cli/shared/logger.mjs +++ b/devui-cli/shared/logger.js @@ -1,6 +1,6 @@ -import chalk from 'chalk' +const chalk = require('chalk') -export default { +module.exports = { info(text) { console.log(chalk.hex('#00afef')(text)) }, diff --git a/devui-cli/shared/utils.mjs b/devui-cli/shared/utils.js similarity index 81% rename from devui-cli/shared/utils.mjs rename to devui-cli/shared/utils.js index 2d0b82e3bd22a5e78d3a858d5fbd656dba8656f0..5c3f840f84c2ed00ea8812913e500f46e0d62a5f 100644 --- a/devui-cli/shared/utils.mjs +++ b/devui-cli/shared/utils.js @@ -1,14 +1,14 @@ -import { camelCase, upperFirst } from 'lodash-es' -import { INDEX_FILE_NAME } from './constant.js' -import { resolve } from 'path' -import logger from './logger.mjs' -import fs from 'fs-extra' +const { camelCase, upperFirst } = require('lodash') +const { INDEX_FILE_NAME } = require('./constant') +const { resolve } = require('path') +const logger = require('./logger') +const fs = require('fs-extra') -export function bigCamelCase(str) { +exports.bigCamelCase = (str) => { return upperFirst(camelCase(str)) } -export function resolveDirFilesInfo(targetDir, ignoreDirs = []) { +exports.resolveDirFilesInfo = (targetDir, ignoreDirs = []) => { return fs .readdirSync(targetDir) .filter( @@ -19,13 +19,13 @@ export function resolveDirFilesInfo(targetDir, ignoreDirs = []) { fs.existsSync(resolve(targetDir, dir, INDEX_FILE_NAME)) ) .map((dir) => ({ - name: bigCamelCase(dir), + name: this.bigCamelCase(dir), dirname: dir, path: resolve(targetDir, dir, INDEX_FILE_NAME) })) } -export function parseExportByFileInfo(fileInfo, ignoreParseError) { +exports.parseExportByFileInfo = (fileInfo, ignoreParseError) => { const exportModule = {} const indexContent = fs.readFileSync(fileInfo.path, { encoding: 'utf-8' }) diff --git a/devui-cli/templates/component.mjs b/devui-cli/templates/component.js similarity index 84% rename from devui-cli/templates/component.mjs rename to devui-cli/templates/component.js index 0f6312c0010e606de8bc7b0716bcba7a6dc56222..915747d2f459b8ac3c5d2f56df00a7b76a7d30e3 100644 --- a/devui-cli/templates/component.mjs +++ b/devui-cli/templates/component.js @@ -1,8 +1,8 @@ -import { DEVUI_NAMESPACE } from '../shared/constant.js' -import { camelCase } from 'lodash-es' -import { bigCamelCase } from '../shared/utils.mjs' +const { DEVUI_NAMESPACE } = require('../shared/constant') +const { camelCase } = require('lodash') +const { bigCamelCase } = require('../shared/utils') -export const createComponentTemplate = ({ styleName, componentName, typesName }) => `\ +exports.createComponentTemplate = ({ styleName, componentName, typesName }) => `\ import './${styleName}.scss' import { defineComponent } from 'vue' @@ -23,7 +23,7 @@ export default defineComponent({ }) ` -export const createTypesTemplate = ({ componentName }) => `\ +exports.createTypesTemplate = ({ componentName }) => `\ import type { PropType, ExtractPropTypes } from 'vue' export const ${camelCase(componentName)}Props = { @@ -35,7 +35,7 @@ export const ${camelCase(componentName)}Props = { export type ${bigCamelCase(componentName)}Props = ExtractPropTypes ` -export const createDirectiveTemplate = () => `\ +exports.createDirectiveTemplate = () => `\ // can export function. export default { created() { }, @@ -48,7 +48,7 @@ export default { } ` -export const createServiceTemplate = ({ componentName, typesName, serviceName }) => `\ +exports.createServiceTemplate = ({ componentName, typesName, serviceName }) => `\ import { ${bigCamelCase(componentName)}Props } from './${typesName}' const ${bigCamelCase(serviceName)} = { @@ -58,13 +58,13 @@ const ${bigCamelCase(serviceName)} = { export default ${bigCamelCase(serviceName)} ` -export const createStyleTemplate = ({ componentName }) => `\ +exports.createStyleTemplate = ({ componentName }) => `\ .${DEVUI_NAMESPACE}-${componentName} { // } ` -export const createIndexTemplate = ({ +exports.createIndexTemplate = ({ title, category, hasComponent, @@ -124,5 +124,5 @@ export default { ` } -export const createTestsTemplate = () => `\ +exports.createTestsTemplate = () => `\ ` diff --git a/devui-cli/templates/vue-devui.mjs b/devui-cli/templates/vue-devui.js similarity index 81% rename from devui-cli/templates/vue-devui.mjs rename to devui-cli/templates/vue-devui.js index 8414b648210abc10ddc1eb953e40fbe1a0ef1e6f..97d665d390161a8836901a7d10d4bc15a1be1e49 100644 --- a/devui-cli/templates/vue-devui.mjs +++ b/devui-cli/templates/vue-devui.js @@ -1,7 +1,7 @@ -import { relative } from 'path' -import { INDEX_FILE_NAME, VERSION, VUE_DEVUI_FILE } from '../shared/constant.js' +const { relative } = require('path') +const { INDEX_FILE_NAME, VERSION, VUE_DEVUI_FILE } = require('../shared/constant') -export function createVueDevuiTemplate(exportModules = []) { +exports.createVueDevuiTemplate = (exportModules = []) => { const packages = [] const imports = [] const installs = [] diff --git a/package.json b/package.json index 4cd41b0a29fd602c574e094c4f87b65f11ed8a09..087fcf98655af851ec901c27dafb346c72448bd0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "module": "vue-devui.es.js", "style": "style.css", "bin": { - "devui-cli": "./devui-cli/index.mjs" + "devui-cli": "./devui-cli/index.js" }, "scripts": { "dev": "vitepress dev sites", @@ -36,8 +36,8 @@ "convert:route": "node ./scripts/convert-component-route.js", "publish": "cd dist && npm publish", "generate:devui": "node scripts/generate-devui.js", - "predev": "devui-cli create -t vue-devui --ignore-parse-error", - "postinstall": "npm link" + "clean:cli": "npm uninstall -g devui-cli & npm uninstall -g vue-devui", + "predev": "devui-cli create -t vue-devui --ignore-parse-error" }, "dependencies": { "@devui-design/icons": "^1.3.0",