Documentation
¶
Index ¶
- func ConstructVmokChunkURLsFromManifest(manifestResult *ManifestResult) []extractor.DiscoveredJS
- type DynamicImportPlugin
- type ESMImportPlugin
- type HTMLScriptPlugin
- type HelComponent
- type HelMicroPlugin
- type ManifestResult
- type ModernJSPlugin
- type ModuleFederationManifestPlugin
- type ModuleFederationPlugin
- type NextJSPlugin
- type NuxtJSPlugin
- type RequireJSPlugin
- type ScriptCreatePlugin
- type SourceMapPlugin
- type SvelteKitPlugin
- type URLPatternPlugin
- type UmiJSPlugin
- type VitePlugin
- type VmokManifest
- type WebpackPlugin
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 (p *DynamicImportPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*ESMImportPlugin) Analyze ¶
func (p *ESMImportPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*HTMLScriptPlugin) Analyze ¶
func (p *HTMLScriptPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
func (*HTMLScriptPlugin) Name ¶
func (p *HTMLScriptPlugin) Name() string
func (*HTMLScriptPlugin) Precheck ¶
func (p *HTMLScriptPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool
type HelComponent ¶
HelComponent Hel-Micro 组件配置
type HelMicroPlugin ¶
type HelMicroPlugin struct {
// contains filtered or unexported fields
}
HelMicroPlugin 提取 Hel-Micro metadata JSON 并解析其中的组件
func (*HelMicroPlugin) Analyze ¶
func (p *HelMicroPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*ModernJSPlugin) Analyze ¶
func (p *ModernJSPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (p *ModuleFederationManifestPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
func (*ModuleFederationManifestPlugin) Name ¶
func (p *ModuleFederationManifestPlugin) Name() string
func (*ModuleFederationManifestPlugin) Precheck ¶
func (p *ModuleFederationManifestPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool
type ModuleFederationPlugin ¶
type ModuleFederationPlugin struct {
// contains filtered or unexported fields
}
ModuleFederationPlugin 提取 Module Federation manifest
func NewModuleFederationPlugin ¶
func NewModuleFederationPlugin() *ModuleFederationPlugin
NewModuleFederationPlugin 创建插件
func (*ModuleFederationPlugin) Analyze ¶
func (p *ModuleFederationPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
func (*ModuleFederationPlugin) Name ¶
func (p *ModuleFederationPlugin) Name() string
func (*ModuleFederationPlugin) Precheck ¶
func (p *ModuleFederationPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool
type NextJSPlugin ¶
type NextJSPlugin struct {
// contains filtered or unexported fields
}
NextJSPlugin 提取 Next.js 相关资源
func (*NextJSPlugin) Analyze ¶
func (p *NextJSPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*NuxtJSPlugin) Analyze ¶
func (p *NuxtJSPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*RequireJSPlugin) Analyze ¶
func (p *RequireJSPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (p *ScriptCreatePlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*SourceMapPlugin) Analyze ¶
func (p *SourceMapPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*SvelteKitPlugin) Analyze ¶
func (p *SvelteKitPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*URLPatternPlugin) Analyze ¶
func (p *URLPatternPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
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 (*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 (*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"`
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 (*WebpackPlugin) Analyze ¶
func (p *WebpackPlugin) Analyze(ctx context.Context, input *extractor.AnalyzeInput) (*extractor.Result, error)
func (*WebpackPlugin) Name ¶
func (p *WebpackPlugin) Name() string
func (*WebpackPlugin) Precheck ¶
func (p *WebpackPlugin) Precheck(ctx context.Context, input *extractor.AnalyzeInput) bool