From b18bb7a564e1b29d653483cf914828cf1f094392 Mon Sep 17 00:00:00 2001 From: wChenonly <37658262+wChenonly@users.noreply.github.com> Date: Tue, 26 Mar 2024 22:06:18 +0800 Subject: [PATCH] fix(vant-cli): support defineOptions named (#12734) --- packages/vant-cli/src/common/index.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/vant-cli/src/common/index.ts b/packages/vant-cli/src/common/index.ts index 13d3b23fc8b..5bdcd761a06 100644 --- a/packages/vant-cli/src/common/index.ts +++ b/packages/vant-cli/src/common/index.ts @@ -1,15 +1,15 @@ import fse from 'fs-extra'; import { sep, join } from 'node:path'; import { SRC_DIR, getVantConfig } from './constant.js'; -import { InlineConfig, loadConfigFromFile, mergeConfig } from 'vite'; +import { type InlineConfig, loadConfigFromFile, mergeConfig } from 'vite'; const { lstatSync, existsSync, readdirSync, readFileSync, outputFileSync } = fse; export const EXT_REGEXP = /\.\w+$/; export const SFC_REGEXP = /\.(vue)$/; -export const DEMO_REGEXP = new RegExp('\\' + sep + 'demo$'); -export const TEST_REGEXP = new RegExp('\\' + sep + 'test$'); +export const DEMO_REGEXP = new RegExp(`\\${sep}demo$`); +export const TEST_REGEXP = new RegExp(`\\${sep}test$`); export const ASSET_REGEXP = /\.(png|jpe?g|gif|webp|ico|jfif|svg|woff2?|ttf)$/i; export const STYLE_REGEXP = /\.(css|less|scss)$/; export const SCRIPT_REGEXP = /\.(js|ts|jsx|tsx)$/; @@ -24,8 +24,12 @@ export function replaceExt(path: string, ext: string) { return path.replace(EXT_REGEXP, ext); } -export function hasDefaultExport(code: string) { - return code.includes('export default') || code.includes('export { default }'); +export function hasExportOrDefineOptions(code: string) { + return ( + code.includes('export default') || + code.includes('export { default }') || + code.includes('defineOptions') + ); } export function getComponents() { @@ -38,7 +42,7 @@ export function getComponents() { ENTRY_EXTS.some((ext) => { const path = join(SRC_DIR, dir, `index.${ext}`); if (existsSync(path)) { - return hasDefaultExport(readFileSync(path, 'utf-8')); + return hasExportOrDefineOptions(readFileSync(path, 'utf-8')); } return false; @@ -71,8 +75,8 @@ export function pascalize(str: string): string { export function decamelize(str: string, sep = '-') { return str - .replace(/([a-z\d])([A-Z])/g, '$1' + sep + '$2') - .replace(/([A-Z])([A-Z][a-z\d]+)/g, '$1' + sep + '$2') + .replace(/([a-z\d])([A-Z])/g, `$1${sep}$2`) + .replace(/([A-Z])([A-Z][a-z\d]+)/g, `$1${sep}$2`) .toLowerCase(); }