plugins

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2026 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConstructVmokChunkURLsFromManifest

func ConstructVmokChunkURLsFromManifest(manifestResult *ManifestResult) []extractor.DiscoveredJS

ConstructVmokChunkURLsFromManifest 使用 manifest 中的信息构造完整的 chunk URL

Types

type DynamicImportPlugin

type DynamicImportPlugin struct {
	// contains filtered or unexported fields
}

DynamicImportPlugin 提取 import() 动态导入

func NewDynamicImportPlugin

func NewDynamicImportPlugin() *DynamicImportPlugin

NewDynamicImportPlugin 创建插件

func (*DynamicImportPlugin) Analyze

func (*DynamicImportPlugin) Name

func (p *DynamicImportPlugin) Name() string

func (*DynamicImportPlugin) Precheck

func (p *DynamicImportPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type ESMImportPlugin

type ESMImportPlugin struct {
	// contains filtered or unexported fields
}

ESMImportPlugin 提取 ESM 静态 import

func NewESMImportPlugin

func NewESMImportPlugin() *ESMImportPlugin

NewESMImportPlugin 创建插件

func (*ESMImportPlugin) Analyze

func (*ESMImportPlugin) Name

func (p *ESMImportPlugin) Name() string

func (*ESMImportPlugin) Precheck

func (p *ESMImportPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type HTMLScriptPlugin

type HTMLScriptPlugin struct {
	// contains filtered or unexported fields
}

HTMLScriptPlugin 提取 HTML 中的 <script src>、modulepreload 和内联脚本

func NewHTMLScriptPlugin

func NewHTMLScriptPlugin() *HTMLScriptPlugin

NewHTMLScriptPlugin 创建插件

func (*HTMLScriptPlugin) Analyze

func (*HTMLScriptPlugin) Name

func (p *HTMLScriptPlugin) Name() string

func (*HTMLScriptPlugin) Precheck

func (p *HTMLScriptPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type HelComponent

type HelComponent struct {
	URL           string   `json:"url"`
	OfflineChunks []string `json:"offlineChunks"`
}

HelComponent Hel-Micro 组件配置

type HelMicroPlugin

type HelMicroPlugin struct {
	// contains filtered or unexported fields
}

HelMicroPlugin 提取 Hel-Micro metadata JSON 并解析其中的组件

func NewHelMicroPlugin

func NewHelMicroPlugin() *HelMicroPlugin

NewHelMicroPlugin 创建插件

func (*HelMicroPlugin) Analyze

func (*HelMicroPlugin) Name

func (p *HelMicroPlugin) Name() string

func (*HelMicroPlugin) Precheck

func (p *HelMicroPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type ManifestResult

type ManifestResult struct {
	Chunks     []string // chunk 相对路径列表
	CDNBase    string   // CDN 基础 URL
	PublicPath string   // publicPath 路径
}

ManifestResult 包含解析后的 manifest 信息

func ParseVmokManifest

func ParseVmokManifest(jsonContent []byte) (*ManifestResult, error)

ParseVmokManifest 解析 vmok manifest JSON

type ModernJSPlugin

type ModernJSPlugin struct {
}

ModernJSPlugin 提取 ModernJS/ByteDance 系路由 manifest

func NewModernJSPlugin

func NewModernJSPlugin() *ModernJSPlugin

NewModernJSPlugin 创建插件

func (*ModernJSPlugin) Analyze

func (*ModernJSPlugin) Name

func (p *ModernJSPlugin) Name() string

func (*ModernJSPlugin) Precheck

func (p *ModernJSPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type ModuleFederationManifestPlugin

type ModuleFederationManifestPlugin struct {
	// contains filtered or unexported fields
}

ModuleFederationManifestPlugin 专门处理 Module Federation manifest 从 JS 代码中提取 baseHost + "xxx/manifest.json" 模式并解析获取 chunk 列表

func NewModuleFederationManifestPlugin

func NewModuleFederationManifestPlugin() *ModuleFederationManifestPlugin

NewModuleFederationManifestPlugin 创建插件

func (*ModuleFederationManifestPlugin) Analyze

func (*ModuleFederationManifestPlugin) Name

func (*ModuleFederationManifestPlugin) Precheck

type ModuleFederationPlugin

type ModuleFederationPlugin struct {
	// contains filtered or unexported fields
}

ModuleFederationPlugin 提取 Module Federation manifest

func NewModuleFederationPlugin

func NewModuleFederationPlugin() *ModuleFederationPlugin

NewModuleFederationPlugin 创建插件

func (*ModuleFederationPlugin) Analyze

func (*ModuleFederationPlugin) Name

func (p *ModuleFederationPlugin) Name() string

func (*ModuleFederationPlugin) Precheck

type NextJSPlugin

type NextJSPlugin struct {
	// contains filtered or unexported fields
}

NextJSPlugin 提取 Next.js 相关资源

func NewNextJSPlugin

func NewNextJSPlugin() *NextJSPlugin

NewNextJSPlugin 创建插件

func (*NextJSPlugin) Analyze

func (*NextJSPlugin) Name

func (p *NextJSPlugin) Name() string

func (*NextJSPlugin) Precheck

func (p *NextJSPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type NuxtJSPlugin

type NuxtJSPlugin struct {
	// contains filtered or unexported fields
}

NuxtJSPlugin 提取 Nuxt.js 相关资源

func NewNuxtJSPlugin

func NewNuxtJSPlugin() *NuxtJSPlugin

NewNuxtJSPlugin 创建插件

func (*NuxtJSPlugin) Analyze

func (*NuxtJSPlugin) Name

func (p *NuxtJSPlugin) Name() string

func (*NuxtJSPlugin) Precheck

func (p *NuxtJSPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type RequireJSPlugin

type RequireJSPlugin struct {
	// contains filtered or unexported fields
}

RequireJSPlugin 提取 RequireJS 相关资源

func NewRequireJSPlugin

func NewRequireJSPlugin() *RequireJSPlugin

NewRequireJSPlugin 创建插件

func (*RequireJSPlugin) Analyze

func (*RequireJSPlugin) Name

func (p *RequireJSPlugin) Name() string

func (*RequireJSPlugin) Precheck

func (p *RequireJSPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type ScriptCreatePlugin

type ScriptCreatePlugin struct {
	// contains filtered or unexported fields
}

ScriptCreatePlugin 提取 createElement('script') 模式动态加载的 JS

func NewScriptCreatePlugin

func NewScriptCreatePlugin() *ScriptCreatePlugin

NewScriptCreatePlugin 创建插件

func (*ScriptCreatePlugin) Analyze

func (*ScriptCreatePlugin) Name

func (p *ScriptCreatePlugin) Name() string

func (*ScriptCreatePlugin) Precheck

func (p *ScriptCreatePlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type SourceMapPlugin

type SourceMapPlugin struct {
	// contains filtered or unexported fields
}

SourceMapPlugin 提取 JS 文件的 source map 信息

func NewSourceMapPlugin

func NewSourceMapPlugin() *SourceMapPlugin

NewSourceMapPlugin 创建插件

func (*SourceMapPlugin) Analyze

func (*SourceMapPlugin) Name

func (p *SourceMapPlugin) Name() string

func (*SourceMapPlugin) Precheck

func (p *SourceMapPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type SvelteKitPlugin

type SvelteKitPlugin struct {
	// contains filtered or unexported fields
}

SvelteKitPlugin 提取 SvelteKit 相关资源

func NewSvelteKitPlugin

func NewSvelteKitPlugin() *SvelteKitPlugin

NewSvelteKitPlugin 创建插件

func (*SvelteKitPlugin) Analyze

func (*SvelteKitPlugin) Name

func (p *SvelteKitPlugin) Name() string

func (*SvelteKitPlugin) Precheck

func (p *SvelteKitPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type URLPatternPlugin

type URLPatternPlugin struct {
	// contains filtered or unexported fields
}

URLPatternPlugin 从 JS 内容中提取 URL 模式,用于探测 提取 protocol-relative URL (//host/path) 作为 probe base URL

func NewURLPatternPlugin

func NewURLPatternPlugin() *URLPatternPlugin

NewURLPatternPlugin 创建插件

func (*URLPatternPlugin) Analyze

func (*URLPatternPlugin) Name

func (p *URLPatternPlugin) Name() string

func (*URLPatternPlugin) Precheck

func (p *URLPatternPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type UmiJSPlugin added in v0.0.2

type UmiJSPlugin struct {
	// contains filtered or unexported fields
}

UmiJSPlugin 提取 UmiJS 动态加载的 chunk 文件 这种模式常见于使用 umi.js 框架的网站,如 Ant Design Pro preload_helper.js 文件包含路由映射和 chunk 文件映射

func NewUmiJSPlugin added in v0.0.2

func NewUmiJSPlugin() *UmiJSPlugin

NewUmiJSPlugin 创建插件

func (*UmiJSPlugin) Analyze added in v0.0.2

func (p *UmiJSPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)

func (*UmiJSPlugin) Name added in v0.0.2

func (p *UmiJSPlugin) Name() string

func (*UmiJSPlugin) Precheck added in v0.0.2

func (p *UmiJSPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type VitePlugin

type VitePlugin struct {
	// contains filtered or unexported fields
}

VitePlugin 提取 Vite 相关资源

func NewVitePlugin

func NewVitePlugin() *VitePlugin

NewVitePlugin 创建插件

func (*VitePlugin) Analyze

func (p *VitePlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)

func (*VitePlugin) Name

func (p *VitePlugin) Name() string

func (*VitePlugin) Precheck

func (p *VitePlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

type VmokManifest

type VmokManifest struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	MetaData struct {
		Name      string `json:"name"`
		Type      string `json:"type"`
		BuildInfo struct {
			BuildVersion string `json:"buildVersion"`
			BuildName    string `json:"buildName"`
		} `json:"buildInfo"`
		RemoteEntry struct {
			Name string `json:"name"`
			Path string `json:"path"`
			Type string `json:"type"`
		} `json:"remoteEntry"`
		Types struct {
			Name string `json:"Name"`
			Path string `json:"path"`
		} `json:"types"`
		GlobalName    string            `json:"globalName"`
		PluginVersion string            `json:"pluginVersion"`
		PublicPath    string            `json:"publicPath"`
		Region        map[string]string `json:"region"`
	} `json:"metaData"`
	Shared []struct {
		ID      string `json:"id"`
		Name    string `json:"name"`
		Version string `json:"version"`
		Assets  struct {
			JS struct {
				Sync  []string `json:"sync"`
				Async []string `json:"async"`
			} `json:"js"`
			CSS struct {
				Sync  []string `json:"sync"`
				Async []string `json:"async"`
			} `json:"css"`
		} `json:"assets"`
	} `json:"shared"`
	Remotes []interface{} `json:"remotes"`
	Exposes []struct {
		ID     string `json:"id"`
		Name   string `json:"name"`
		Assets struct {
			JS struct {
				Sync  []string `json:"sync"`
				Async []string `json:"async"`
			} `json:"js"`
			CSS struct {
				Sync  []string `json:"sync"`
				Async []string `json:"async"`
			} `json:"css"`
		} `json:"assets"`
		Path string `json:"path"`
	} `json:"exposes"`
	Region string `json:"region"`
}

VmokManifest JSON 格式

type WebpackPlugin

type WebpackPlugin struct {
	// contains filtered or unexported fields
}

WebpackPlugin 提取 Webpack 相关的动态加载

func NewWebpackPlugin

func NewWebpackPlugin() *WebpackPlugin

NewWebpackPlugin 创建插件

func (*WebpackPlugin) Analyze

func (*WebpackPlugin) Name

func (p *WebpackPlugin) Name() string

func (*WebpackPlugin) Precheck

func (p *WebpackPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL