Options
All
  • Public
  • Public/Protected
  • All
Menu

Class VueFile

用于处理单/多 Vue 文件的类

主要功能

打开:一般分为四个阶段

  • const vueFile = new VueFile(fullPath); // 根据路径创建对象,可以为虚拟路径。
  • await vueFile.preOpen(); // 异步方法。获取 isDirectory,获取子组件、标题信息。
  • await vueFile.open(); // 异步方法。如果已经打开则不会重新打开,如果没有 preOpen 会先执行 preOpen。获取常用操作的内容块:script, template, style, api, examples, package。
  • vueFile.parseAll(); // 解析全部内容块

保存:

  • await vueFile.save();
  • 如果有解析,先根据解析器 generate() 内容,再保存
  • 根据 isDirectory 判断是否保存单多文件

另存为:

  • await vueFile.saveAs(fullPath);

Hierarchy

Index

Constructors

constructor

  • new VueFile(fullPath: string): VueFile

Properties

$css

Alias of styleHandler

$html

Alias of templateHandler

$js

Alias of scriptHandler

_changeListeners

_changeListeners: Array<Function>

_miniChangeListeners

_miniChangeListeners: Array<Function>

alias

alias: string

别名,用于信息提示等

api

api: string

apiHandler

apiHandler: APIHandler

API 处理器

baseName

baseName: string

children

children: VueFile[]

该组件的子组件 为undefined时表示未 preOpen 过,为数组表示已经打开。

componentName

componentName: string

import 组件名称/大驼峰名称

content

content: string

单文件读取的内容,或者 generate() 后的内容 为undefined表示未打开过

examples

examples: string

examplesHandler

examplesHandler: ExamplesHandler

文档示例处理器

extName

extName: string

fileName

fileName: string

fullPath

fullPath: string

isChild

isChild: boolean

是否为子组件

isDirectory

isDirectory: boolean

isOpen

isOpen: boolean

isSaving

isSaving: boolean

isVue

isVue: boolean

isWatched

isWatched: boolean

package

package: PackageJSON

parent

parent: VueFile

父 VueFile

script

script: string

scriptHandler

scriptHandler: ScriptHandler

脚本处理器 为undefined表示还未解析

style

style: string

styleHandler

styleHandler: StyleHandler

样式处理器 为undefined表示还未解析

subfiles

subfiles: string[]

多文件组件的子文件

tagName

tagName: string

标签名称/中划线名称

template

template: string

templateHandler

templateHandler: TemplateHandler

模板处理器 为undefined表示还未解析

title

title: string

Methods

addEventListener

  • addEventListener(eventName: string, listener: Function): void

checkTransform

  • checkTransform(): true | string[]

clone

close

  • close(): void

extend

findSuper

  • findSuper(): void

forceOpen

  • forceOpen(): Promise<void>

generate

hasAssets

  • hasAssets(): boolean

hasExtra

  • hasExtra(): boolean

hasScript

  • hasScript(simplify: boolean): boolean

hasStyle

  • hasStyle(simplify: boolean): boolean

hasTemplate

  • hasTemplate(simplify: boolean): boolean

Protected load

  • load(): Promise<void>

loadAPI

  • loadAPI(): Promise<string>

loadDirectory

  • loadDirectory(): Promise<VueFile[]>

loadExamples

  • loadExamples(from?: string): Promise<string>

loadPackage

  • loadPackage(): Promise<any>

loadScript

  • loadScript(): Promise<string>

loadStyle

  • loadStyle(): Promise<string>

loadTemplate

  • loadTemplate(): Promise<string>

merge

  • merge(that: VueFile, route?: string | number | { character: number; line: number }): {}
  • 与另一个 Vue 文件合并模板、逻辑和样式 两个 VueFile 必须先 parseAll()

    Parameters

    • that: VueFile

      另一个 VueFile

    • Default value route: string | number | { character: number; line: number } = ""

      插入的节点路径,最后一位表示节点位置,为空表示最后,比如 /1/2/1 表示插入到根节点的第1个子节点的第2个子节点的第1个位置

      • merge(that, '') 指根节点本身
      • merge(that, '/') 指根节点本身
      • merge(that, '/0') 指第0个子节点
      • merge(that, '/2/1') 指第2个子节点的第1个子节点
      • merge(that, '/2/') 指第2个子节点的最后

    Returns {}

onChange

  • onChange(event: string, filePath: string, key?: string, hash?: string): void

onMiniChange

  • onMiniChange(event: string, filePath: string, key?: string, hash?: string): Promise<void>

open

  • open(): void | Promise<void>

parseAPI

parseAll

  • parseAll(): void

parseExamples

parseScript

parseStyle

parseTemplate

preOpen

  • preOpen(): Promise<void>

preload

  • preload(): Promise<string>

readTitleInReadme

  • readTitleInReadme(): Promise<string>

removeEventListener

  • removeEventListener(eventName: string, listener: Function): void

save

  • save(): Promise<void>

saveAs

  • saveAs(fullPath: string, isDirectory?: boolean): Promise<VueFile>

transform

  • transform(): void

warnIfNotOpen

  • warnIfNotOpen(): void

watch

  • watch(listener: (eventName: string, filePath: string) => void): FSWatcher

Static Private _splitPath

  • _splitPath(fullPath: string): { arr: string[]; pos: number }

Static fetch

Static from

  • from(code: string, fileName?: string): VueFile

Static resolveRootVueDir

  • resolveRootVueDir(fullPath: string): string

Static resolveTagName

  • resolveTagName(fullPath: string): string

Generated using TypeDoc