@meng-xi/vite-plugin 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-en.md +43 -17
- package/README.md +56 -30
- package/dist/common/concurrency/index.cjs +1 -0
- package/dist/common/concurrency/index.d.cts +26 -0
- package/dist/common/concurrency/index.d.mts +26 -0
- package/dist/common/concurrency/index.d.ts +26 -0
- package/dist/common/concurrency/index.mjs +1 -0
- package/dist/common/format/index.cjs +1 -1
- package/dist/common/format/index.d.cts +19 -1
- package/dist/common/format/index.d.mts +19 -1
- package/dist/common/format/index.d.ts +19 -1
- package/dist/common/format/index.mjs +1 -1
- package/dist/common/fs/index.cjs +1 -1
- package/dist/common/fs/index.d.cts +19 -1
- package/dist/common/fs/index.d.mts +19 -1
- package/dist/common/fs/index.d.ts +19 -1
- package/dist/common/fs/index.mjs +1 -1
- package/dist/common/index.cjs +1 -1
- package/dist/common/index.d.cts +3 -2
- package/dist/common/index.d.mts +3 -2
- package/dist/common/index.d.ts +3 -2
- package/dist/common/index.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +5 -3
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.mjs +1 -1
- package/dist/plugins/assetManifest/index.cjs +1 -1
- package/dist/plugins/assetManifest/index.mjs +1 -1
- package/dist/plugins/autoImport/index.cjs +13 -13
- package/dist/plugins/autoImport/index.mjs +8 -8
- package/dist/plugins/bundleAnalyzer/index.cjs +1 -1
- package/dist/plugins/bundleAnalyzer/index.mjs +1 -1
- package/dist/plugins/compressAssets/index.cjs +1 -1
- package/dist/plugins/compressAssets/index.mjs +1 -1
- package/dist/plugins/copyFile/index.cjs +1 -1
- package/dist/plugins/copyFile/index.mjs +1 -1
- package/dist/plugins/envGuard/index.cjs +5 -5
- package/dist/plugins/envGuard/index.mjs +8 -8
- package/dist/plugins/faviconManager/index.cjs +1 -1
- package/dist/plugins/faviconManager/index.mjs +1 -1
- package/dist/plugins/generateRouter/index.cjs +62 -5
- package/dist/plugins/generateRouter/index.d.cts +29 -1
- package/dist/plugins/generateRouter/index.d.mts +29 -1
- package/dist/plugins/generateRouter/index.d.ts +29 -1
- package/dist/plugins/generateRouter/index.mjs +62 -5
- package/dist/plugins/generateVersion/index.cjs +1 -1
- package/dist/plugins/generateVersion/index.mjs +1 -1
- package/dist/plugins/imageOptimizer/index.cjs +5 -0
- package/dist/plugins/imageOptimizer/index.d.cts +242 -0
- package/dist/plugins/imageOptimizer/index.d.mts +242 -0
- package/dist/plugins/imageOptimizer/index.d.ts +242 -0
- package/dist/plugins/imageOptimizer/index.mjs +5 -0
- package/dist/plugins/index.cjs +1 -1
- package/dist/plugins/index.d.cts +2 -1
- package/dist/plugins/index.d.mts +2 -1
- package/dist/plugins/index.d.ts +2 -1
- package/dist/plugins/index.mjs +1 -1
- package/package.json +15 -1
package/dist/common/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const common_format_index=require("./format/index.cjs"),common_fs_index=require("./fs/index.cjs"),common_html_index=require("./html/index.cjs"),common_path_index=require("./path/index.cjs"),common_script_index=require("./script/index.cjs"),common_ui_index=require("./ui/index.cjs"),validator=require("../shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./validation/index.cjs"),security=require("../shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.isExtensionIncluded=common_path_index.isExtensionIncluded,exports.isPathExcluded=common_path_index.isPathExcluded,exports.isPreCompressed=common_path_index.isPreCompressed,exports.normalizePath=common_path_index.normalizePath,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
|
|
1
|
+
"use strict";const common_concurrency_index=require("./concurrency/index.cjs"),common_format_index=require("./format/index.cjs"),common_fs_index=require("./fs/index.cjs"),common_html_index=require("./html/index.cjs"),common_path_index=require("./path/index.cjs"),common_script_index=require("./script/index.cjs"),common_ui_index=require("./ui/index.cjs"),validator=require("../shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./validation/index.cjs"),security=require("../shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),exports.runWithConcurrency=common_concurrency_index.runWithConcurrency,exports.calcRatio=common_format_index.calcRatio,exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.resolveReportPath=common_fs_index.resolveReportPath,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.isExtensionIncluded=common_path_index.isExtensionIncluded,exports.isPathExcluded=common_path_index.isPathExcluded,exports.isPreCompressed=common_path_index.isPreCompressed,exports.normalizePath=common_path_index.normalizePath,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
|
package/dist/common/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './concurrency/index.cjs';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.cjs';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.cjs';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.cjs';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './path/index.cjs';
|
|
5
6
|
export { makeCallback } from './script/index.cjs';
|
package/dist/common/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './concurrency/index.mjs';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.mjs';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.mjs';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.mjs';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './path/index.mjs';
|
|
5
6
|
export { makeCallback } from './script/index.mjs';
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './concurrency/index.js';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.js';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.js';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.js';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './path/index.js';
|
|
5
6
|
export { makeCallback } from './script/index.js';
|
package/dist/common/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./html/index.mjs";export{isExtensionIncluded,isPathExcluded,isPreCompressed,normalizePath}from"./path/index.mjs";export{makeCallback}from"./script/index.mjs";export{ANSI}from"./ui/index.mjs";export{V as Validator}from"../shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./validation/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"../shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";
|
|
1
|
+
export{runWithConcurrency}from"./concurrency/index.mjs";export{calcRatio,formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./format/index.mjs";export{checkSourceExists,copySourceToTarget,resolveReportPath,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./html/index.mjs";export{isExtensionIncluded,isPathExcluded,isPreCompressed,normalizePath}from"./path/index.mjs";export{makeCallback}from"./script/index.mjs";export{ANSI}from"./ui/index.mjs";export{V as Validator}from"../shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./validation/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"../shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const common_format_index=require("./common/format/index.cjs"),common_fs_index=require("./common/fs/index.cjs"),common_html_index=require("./common/html/index.cjs"),common_path_index=require("./common/path/index.cjs"),common_script_index=require("./common/script/index.cjs"),common_ui_index=require("./common/ui/index.cjs"),validator=require("./shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./common/validation/index.cjs"),factory_index=require("./factory/index.cjs"),logger_index=require("./logger/index.cjs"),plugins_assetManifest_index=require("./plugins/assetManifest/index.cjs"),plugins_autoImport_index=require("./plugins/autoImport/index.cjs"),plugins_buildProgress_index=require("./plugins/buildProgress/index.cjs"),plugins_bundleAnalyzer_index=require("./plugins/bundleAnalyzer/index.cjs"),plugins_compressAssets_index=require("./plugins/compressAssets/index.cjs"),plugins_copyFile_index=require("./plugins/copyFile/index.cjs"),plugins_envGuard_index=require("./plugins/envGuard/index.cjs"),plugins_faviconManager_index=require("./plugins/faviconManager/index.cjs"),plugins_generateRouter_index=require("./plugins/generateRouter/index.cjs"),plugins_generateVersion_index=require("./plugins/generateVersion/index.cjs"),plugins_htmlInject_index=require("./plugins/htmlInject/index.cjs"),plugins_loadingManager_index=require("./plugins/loadingManager/index.cjs"),plugins_versionUpdateChecker_index=require("./plugins/versionUpdateChecker/index.cjs"),security=require("./shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),require("node:path"),require("node:fs"),require("node:zlib"),require("node:util"),require("node:stream/promises"),require("crypto"),exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.isExtensionIncluded=common_path_index.isExtensionIncluded,exports.isPathExcluded=common_path_index.isPathExcluded,exports.isPreCompressed=common_path_index.isPreCompressed,exports.normalizePath=common_path_index.normalizePath,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,exports.assetManifest=plugins_assetManifest_index.assetManifest,exports.autoImport=plugins_autoImport_index.autoImport,exports.buildProgress=plugins_buildProgress_index.buildProgress,exports.bundleAnalyzer=plugins_bundleAnalyzer_index.bundleAnalyzer,exports.compressAssets=plugins_compressAssets_index.compressAssets,exports.copyFile=plugins_copyFile_index.copyFile,exports.envGuard=plugins_envGuard_index.envGuard,exports.faviconManager=plugins_faviconManager_index.faviconManager,exports.generateRouter=plugins_generateRouter_index.generateRouter,exports.generateVersion=plugins_generateVersion_index.generateVersion,exports.htmlInject=plugins_htmlInject_index.htmlInject,exports.loadingManager=plugins_loadingManager_index.loadingManager,exports.versionUpdateChecker=plugins_versionUpdateChecker_index.versionUpdateChecker,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
|
|
1
|
+
"use strict";const common_concurrency_index=require("./common/concurrency/index.cjs"),common_format_index=require("./common/format/index.cjs"),common_fs_index=require("./common/fs/index.cjs"),common_html_index=require("./common/html/index.cjs"),common_path_index=require("./common/path/index.cjs"),common_script_index=require("./common/script/index.cjs"),common_ui_index=require("./common/ui/index.cjs"),validator=require("./shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./common/validation/index.cjs"),factory_index=require("./factory/index.cjs"),logger_index=require("./logger/index.cjs"),plugins_assetManifest_index=require("./plugins/assetManifest/index.cjs"),plugins_autoImport_index=require("./plugins/autoImport/index.cjs"),plugins_buildProgress_index=require("./plugins/buildProgress/index.cjs"),plugins_bundleAnalyzer_index=require("./plugins/bundleAnalyzer/index.cjs"),plugins_compressAssets_index=require("./plugins/compressAssets/index.cjs"),plugins_copyFile_index=require("./plugins/copyFile/index.cjs"),plugins_envGuard_index=require("./plugins/envGuard/index.cjs"),plugins_faviconManager_index=require("./plugins/faviconManager/index.cjs"),plugins_generateRouter_index=require("./plugins/generateRouter/index.cjs"),plugins_generateVersion_index=require("./plugins/generateVersion/index.cjs"),plugins_htmlInject_index=require("./plugins/htmlInject/index.cjs"),plugins_imageOptimizer_index=require("./plugins/imageOptimizer/index.cjs"),plugins_loadingManager_index=require("./plugins/loadingManager/index.cjs"),plugins_versionUpdateChecker_index=require("./plugins/versionUpdateChecker/index.cjs"),security=require("./shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),require("node:path"),require("node:fs"),require("node:zlib"),require("node:util"),require("node:stream/promises"),require("crypto"),exports.runWithConcurrency=common_concurrency_index.runWithConcurrency,exports.calcRatio=common_format_index.calcRatio,exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.resolveReportPath=common_fs_index.resolveReportPath,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.isExtensionIncluded=common_path_index.isExtensionIncluded,exports.isPathExcluded=common_path_index.isPathExcluded,exports.isPreCompressed=common_path_index.isPreCompressed,exports.normalizePath=common_path_index.normalizePath,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,exports.assetManifest=plugins_assetManifest_index.assetManifest,exports.autoImport=plugins_autoImport_index.autoImport,exports.buildProgress=plugins_buildProgress_index.buildProgress,exports.bundleAnalyzer=plugins_bundleAnalyzer_index.bundleAnalyzer,exports.compressAssets=plugins_compressAssets_index.compressAssets,exports.copyFile=plugins_copyFile_index.copyFile,exports.envGuard=plugins_envGuard_index.envGuard,exports.faviconManager=plugins_faviconManager_index.faviconManager,exports.generateRouter=plugins_generateRouter_index.generateRouter,exports.generateVersion=plugins_generateVersion_index.generateVersion,exports.htmlInject=plugins_htmlInject_index.htmlInject,exports.imageOptimizer=plugins_imageOptimizer_index.imageOptimizer,exports.loadingManager=plugins_loadingManager_index.loadingManager,exports.versionUpdateChecker=plugins_versionUpdateChecker_index.versionUpdateChecker,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './common/concurrency/index.cjs';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.cjs';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.cjs';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.cjs';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './common/path/index.cjs';
|
|
5
6
|
export { makeCallback } from './common/script/index.cjs';
|
|
@@ -16,9 +17,10 @@ export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummar
|
|
|
16
17
|
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.cjs';
|
|
17
18
|
export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.cjs';
|
|
18
19
|
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.cjs';
|
|
19
|
-
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.cjs';
|
|
20
|
+
export { GenerateRouterOptions, NameStrategy, NavigationAnimation, OutputFormat, RouteConfig, RouteMeta, UniAnimationType, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.cjs';
|
|
20
21
|
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.cjs';
|
|
21
22
|
export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.cjs';
|
|
23
|
+
export { ConvertMapping, FormatQualityOptions, ImageFormat, ImageOptimizeStats, ImageOptimizeSummary, ImageOptimizerOptions, SvgoOptions, SvgoPlugin, imageOptimizer } from './plugins/imageOptimizer/index.cjs';
|
|
22
24
|
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.cjs';
|
|
23
25
|
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.cjs';
|
|
24
26
|
export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.BI9taN75.cjs';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './common/concurrency/index.mjs';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.mjs';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.mjs';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.mjs';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './common/path/index.mjs';
|
|
5
6
|
export { makeCallback } from './common/script/index.mjs';
|
|
@@ -16,9 +17,10 @@ export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummar
|
|
|
16
17
|
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.mjs';
|
|
17
18
|
export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.mjs';
|
|
18
19
|
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.mjs';
|
|
19
|
-
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.mjs';
|
|
20
|
+
export { GenerateRouterOptions, NameStrategy, NavigationAnimation, OutputFormat, RouteConfig, RouteMeta, UniAnimationType, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.mjs';
|
|
20
21
|
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.mjs';
|
|
21
22
|
export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.mjs';
|
|
23
|
+
export { ConvertMapping, FormatQualityOptions, ImageFormat, ImageOptimizeStats, ImageOptimizeSummary, ImageOptimizerOptions, SvgoOptions, SvgoPlugin, imageOptimizer } from './plugins/imageOptimizer/index.mjs';
|
|
22
24
|
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.mjs';
|
|
23
25
|
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.mjs';
|
|
24
26
|
export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.BI9taN75.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { runWithConcurrency } from './common/concurrency/index.js';
|
|
2
|
+
export { DateFormatOptions, calcRatio, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.js';
|
|
3
|
+
export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, resolveReportPath, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.js';
|
|
3
4
|
export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.js';
|
|
4
5
|
export { isExtensionIncluded, isPathExcluded, isPreCompressed, normalizePath } from './common/path/index.js';
|
|
5
6
|
export { makeCallback } from './common/script/index.js';
|
|
@@ -16,9 +17,10 @@ export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummar
|
|
|
16
17
|
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.js';
|
|
17
18
|
export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.js';
|
|
18
19
|
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.js';
|
|
19
|
-
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.js';
|
|
20
|
+
export { GenerateRouterOptions, NameStrategy, NavigationAnimation, OutputFormat, RouteConfig, RouteMeta, UniAnimationType, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.js';
|
|
20
21
|
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.js';
|
|
21
22
|
export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.js';
|
|
23
|
+
export { ConvertMapping, FormatQualityOptions, ImageFormat, ImageOptimizeStats, ImageOptimizeSummary, ImageOptimizerOptions, SvgoOptions, SvgoPlugin, imageOptimizer } from './plugins/imageOptimizer/index.js';
|
|
22
24
|
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.js';
|
|
23
25
|
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.js';
|
|
24
26
|
export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.BI9taN75.js';
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./common/html/index.mjs";export{isExtensionIncluded,isPathExcluded,isPreCompressed,normalizePath}from"./common/path/index.mjs";export{makeCallback}from"./common/script/index.mjs";export{ANSI}from"./common/ui/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./common/validation/index.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/index.mjs";export{assetManifest}from"./plugins/assetManifest/index.mjs";export{autoImport}from"./plugins/autoImport/index.mjs";export{buildProgress}from"./plugins/buildProgress/index.mjs";export{bundleAnalyzer}from"./plugins/bundleAnalyzer/index.mjs";export{compressAssets}from"./plugins/compressAssets/index.mjs";export{copyFile}from"./plugins/copyFile/index.mjs";export{envGuard}from"./plugins/envGuard/index.mjs";export{faviconManager}from"./plugins/faviconManager/index.mjs";export{generateRouter}from"./plugins/generateRouter/index.mjs";export{generateVersion}from"./plugins/generateVersion/index.mjs";export{htmlInject}from"./plugins/htmlInject/index.mjs";export{loadingManager}from"./plugins/loadingManager/index.mjs";export{versionUpdateChecker}from"./plugins/versionUpdateChecker/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"./shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";import"node:path";import"node:fs";import"node:zlib";import"node:util";import"node:stream/promises";import"crypto";
|
|
1
|
+
export{runWithConcurrency}from"./common/concurrency/index.mjs";export{calcRatio,formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,resolveReportPath,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./common/html/index.mjs";export{isExtensionIncluded,isPathExcluded,isPreCompressed,normalizePath}from"./common/path/index.mjs";export{makeCallback}from"./common/script/index.mjs";export{ANSI}from"./common/ui/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./common/validation/index.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/index.mjs";export{assetManifest}from"./plugins/assetManifest/index.mjs";export{autoImport}from"./plugins/autoImport/index.mjs";export{buildProgress}from"./plugins/buildProgress/index.mjs";export{bundleAnalyzer}from"./plugins/bundleAnalyzer/index.mjs";export{compressAssets}from"./plugins/compressAssets/index.mjs";export{copyFile}from"./plugins/copyFile/index.mjs";export{envGuard}from"./plugins/envGuard/index.mjs";export{faviconManager}from"./plugins/faviconManager/index.mjs";export{generateRouter}from"./plugins/generateRouter/index.mjs";export{generateVersion}from"./plugins/generateVersion/index.mjs";export{htmlInject}from"./plugins/htmlInject/index.mjs";export{imageOptimizer}from"./plugins/imageOptimizer/index.mjs";export{loadingManager}from"./plugins/loadingManager/index.mjs";export{versionUpdateChecker}from"./plugins/versionUpdateChecker/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"./shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";import"node:path";import"node:fs";import"node:zlib";import"node:util";import"node:stream/promises";import"crypto";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const l=require("node:path"),u$2=require("node:fs"),factory_index=require("../../factory/index.cjs"),common_fs_index=require("../../common/fs/index.cjs"),common_path_index=require("../../common/path/index.cjs"),common_html_index=require("../../common/html/index.cjs"),common_validation_index=require("../../common/validation/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path"),require("../../shared/vite-plugin.CcvHfrL8.cjs");function _interopDefaultCompat(s){return s&&typeof s=="object"&&"default"in s?s.default:s}const l__default=_interopDefaultCompat(l),u__default=_interopDefaultCompat(u$2);function shouldIncludeAsset(s,t,e){const n=common_path_index.normalizePath(s);if(!common_path_index.isExtensionIncluded(t,{includeExtensions:e.includeExtensions,excludeExtensions:e.excludeExtensions})||common_path_index.isPathExcluded(s,e.excludePaths,{matchMode:"segment"}))return!1;const o=common_path_index.normalizePath(e.outputFile);return!(n===o||n.endsWith("/"+o)||n.endsWith("manifest.json")||n.endsWith("asset-manifest.json")||common_path_index.isPreCompressed(t))}async function scanOutputDirectory(s,t){return(await common_fs_index.scanDirectory(s,{filter:(e,n,o)=>{const
|
|
1
|
+
"use strict";const l=require("node:path"),u$2=require("node:fs"),factory_index=require("../../factory/index.cjs"),common_fs_index=require("../../common/fs/index.cjs"),common_path_index=require("../../common/path/index.cjs"),common_html_index=require("../../common/html/index.cjs"),common_validation_index=require("../../common/validation/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path"),require("../../common/concurrency/index.cjs"),require("../../shared/vite-plugin.CcvHfrL8.cjs");function _interopDefaultCompat(s){return s&&typeof s=="object"&&"default"in s?s.default:s}const l__default=_interopDefaultCompat(l),u__default=_interopDefaultCompat(u$2);function shouldIncludeAsset(s,t,e){const n=common_path_index.normalizePath(s);if(!common_path_index.isExtensionIncluded(t,{includeExtensions:e.includeExtensions,excludeExtensions:e.excludeExtensions})||common_path_index.isPathExcluded(s,e.excludePaths,{matchMode:"segment"}))return!1;const o=common_path_index.normalizePath(e.outputFile);return!(n===o||n.endsWith("/"+o)||n.endsWith("manifest.json")||n.endsWith("asset-manifest.json")||common_path_index.isPreCompressed(t))}async function scanOutputDirectory(s,t){return(await common_fs_index.scanDirectory(s,{filter:(e,n,o)=>{const c=common_path_index.normalizePath(l__default.relative(s,e));return shouldIncludeAsset(c,n,t)}})).map(e=>({filePath:e.filePath,relativePath:common_path_index.normalizePath(l__default.relative(s,e.filePath)),size:e.size,ext:e.extension}))}function buildAssetMap(s,t,e){const n={},o=t.endsWith("/")?t:t+"/";for(const c of s){const h=extractOriginalKey(c.relativePath),r=o+c.relativePath;n[h]!==void 0&&n[h]!==r?(n[c.relativePath]=r,e?.(`\u8D44\u6E90\u952E\u540D\u51B2\u7A81: "${h}" \u5DF2\u88AB ${n[h]} \u5360\u7528\uFF0C"${c.relativePath}" \u5C06\u4F7F\u7528\u5B8C\u6574\u8DEF\u5F84\u4F5C\u4E3A\u952E`)):n[h]=r}return n}function extractOriginalKey(s){const t=/[-.]([0-9a-f]{6,20})(?=\.)/g;return s.replace(t,"")}function formatManifest(s,t,e,n,o){switch(t){case"vite":return a(s,n,o);case"webpack":return i(s,o);case"custom":return u$1(s,e);default:return a(s,n,o)}}function a(s,t,e){const n={version:"1.0",timestamp:new Date().toISOString(),publicPath:t,assets:s};return e&&e.length>0&&(n.groups=e),n}function i(s,t){return t&&t.length>0?{entries:t.map(e=>({name:e.entry,files:[...e.assets.js,...e.assets.css,...e.assets.other]})),assets:s}:{entries:[{name:"main",files:Object.values(s)}],assets:s}}function u$1(s,t){if(!t)throw new Error('outputFormat \u4E3A "custom" \u65F6\uFF0CcustomFormatter \u4E0D\u80FD\u4E3A\u7A7A');return t(s)}function groupAssetsByEntry(s,t){const e=new Map,n=new Set,o=s.filter(d);for(const r of o){const p=f(r.relativePath);e.has(p)||e.set(p,{entry:p,assets:{js:[],css:[],other:[]}});const g=e.get(p),E=t[r.relativePath]||r.relativePath;u(g,E,r.ext),n.add(r.relativePath)}const c=s.filter(r=>!n.has(r.relativePath)&&!A(r));for(const r of c){const p=m(r,o),g=p?f(p.relativePath):"_shared";e.has(g)||e.set(g,{entry:g,assets:{js:[],css:[],other:[]}});const E=e.get(g),v=t[r.relativePath]||r.relativePath;u(E,v,r.ext),n.add(r.relativePath)}const h=s.filter(r=>!n.has(r.relativePath));if(h.length>0){e.has("_shared")||e.set("_shared",{entry:"_shared",assets:{js:[],css:[],other:[]}});const r=e.get("_shared");for(const p of h){const g=t[p.relativePath]||p.relativePath;u(r,g,p.ext)}}return Array.from(e.values())}function d(s){const{relativePath:t,ext:e}=s,n=t.split("/").pop()||"";return!!(e===".html"||(e===".js"||e===".mjs")&&(n.startsWith("entry-")||n.startsWith("main")||!t.includes("/")))}function A(s){return[".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".woff",".woff2",".ttf",".eot",".map"].includes(s.ext)}function f(s){let t=(s.split("/").pop()||"").replace(/\.[^.]+$/,"");return t.startsWith("entry-")&&(t=t.slice(6)),t.replace(/[-.][0-9a-f]{6,20}$/,"")||t}function m(s,t){const e=s.relativePath.split("/").slice(0,-1).join("/"),n=(s.relativePath.split("/").pop()||"").replace(/\.[^.]+$/,"").replace(/[-.][0-9a-f]{6,20}$/,"");let o=null,c=0;for(const h of t){const r=h.relativePath.split("/").slice(0,-1).join("/"),p=f(h.relativePath);if(e===r)return h;n.startsWith(p)&&p.length>c&&(o=h,c=p.length)}return o}function u(s,t,e){e===".js"||e===".mjs"?s.assets.js.push(t):e===".css"?s.assets.css.push(t):s.assets.other.push(t)}function generateRuntimeScript(s,t){const e=JSON.stringify(s).replace(/<\/script>/gi,"<\\/script>");return`<script>Object.defineProperty(window,"${t}",{value:Object.freeze(${e}),writable:false,configurable:false})<\/script>`}function injectRuntimeManifest(s,t,e){const n=generateRuntimeScript(t,e);return common_html_index.injectBeforeTag(s,"</head>",n)}async function findHtmlFiles(s){const t=[];async function e(n){const o=await u__default.promises.readdir(n,{withFileTypes:!0});for(const c of o){const h=l__default.join(n,c.name);c.isDirectory()?await e(h):c.isFile()&&c.name.endsWith(".html")&&t.push(h)}}return await e(s),t}class F extends factory_index.BasePlugin{manifest=null;assetMap={};groups=null;getDefaultOptions(){return{outputFormat:"vite",outputFile:"manifest.json",includeExtensions:[],publicPath:"/",injectRuntime:!1,runtimeGlobalName:"__ASSET_MANIFEST__",customFormatter:null,groupByEntry:!1,excludeExtensions:[".map",".gz",".br"],excludePaths:[]}}validateOptions(){this.validator.field("outputFormat").enum(["vite","webpack","custom"]).field("outputFile").custom(t=>typeof t=="string"&&t.length>0,"outputFile \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("publicPath").custom(t=>typeof t=="string"&&t.length>0,"publicPath \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("injectRuntime").boolean().field("runtimeGlobalName").custom(t=>typeof t=="string"&&t.length>0,"runtimeGlobalName \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("groupByEntry").boolean().field("customFormatter").custom(t=>this.options.outputFormat!=="custom"||typeof t=="function",'outputFormat \u4E3A "custom" \u65F6\uFF0CcustomFormatter \u5FC5\u987B\u4E3A\u51FD\u6570').validate(),common_validation_index.validateGlobalName(this.options.runtimeGlobalName,"runtimeGlobalName")}getPluginName(){return"asset-manifest"}getEnforce(){return"post"}addPluginHooks(t){t.writeBundle={order:"post",handler:async()=>{await this.safeExecute(()=>this.generateManifest(),"\u751F\u6210\u8D44\u6E90\u6E05\u5355")}}}async generateManifest(){if(!this.viteConfig)return;const t=this.viteConfig.build.outDir,e=Date.now();this.logger.info(`\u5F00\u59CB\u626B\u63CF\u6784\u5EFA\u4EA7\u7269\u76EE\u5F55: ${t}`);const n=await scanOutputDirectory(t,this.options);if(n.length===0){this.logger.info("\u672A\u627E\u5230\u9700\u8981\u8BB0\u5F55\u7684\u8D44\u6E90\u6587\u4EF6");return}this.assetMap=buildAssetMap(n,this.options.publicPath,r=>{this.logger.warn(r)}),this.options.groupByEntry&&(this.groups=groupAssetsByEntry(n,this.assetMap));const o=formatManifest(this.assetMap,this.options.outputFormat,this.options.customFormatter,this.options.publicPath,this.groups??void 0),c=l__default.isAbsolute(this.options.outputFile)?this.options.outputFile:l__default.join(t,this.options.outputFile);await common_fs_index.writeFileContent(c,JSON.stringify(o,null,2)),this.options.outputFormat==="vite"&&(this.manifest=o),this.options.injectRuntime&&await this.injectRuntimeToHtmlFiles(t);const h=Date.now()-e;this.logStats(n.length,h)}async injectRuntimeToHtmlFiles(t){if(!this.manifest&&Object.keys(this.assetMap).length===0){this.logger.warn("\u8D44\u6E90\u6E05\u5355\u5C1A\u672A\u751F\u6210\uFF0C\u8DF3\u8FC7\u8FD0\u884C\u65F6\u6CE8\u5165");return}const e=this.manifest?.assets||this.assetMap,n=await findHtmlFiles(t);if(n.length===0){this.logger.warn("\u672A\u627E\u5230 HTML \u6587\u4EF6\uFF0C\u8FD0\u884C\u65F6\u6E05\u5355\u6CE8\u5165\u8DF3\u8FC7");return}for(const o of n)try{const c=await u__default.promises.readFile(o,"utf-8"),h=injectRuntimeManifest(c,e,this.options.runtimeGlobalName);h.injected?(await common_fs_index.writeFileContent(o,h.html),this.logger.info(`\u8FD0\u884C\u65F6\u6E05\u5355\u5DF2\u6CE8\u5165\u5230: ${l__default.relative(t,o)}`)):this.logger.warn(`\u672A\u627E\u5230 </head> \u6807\u7B7E\uFF0C\u8DF3\u8FC7\u6CE8\u5165: ${l__default.relative(t,o)}`)}catch(c){this.logger.error(`\u6CE8\u5165\u8FD0\u884C\u65F6\u6E05\u5355\u5931\u8D25: ${o} - ${c instanceof Error?c.message:String(c)}`)}this.logger.info(`\u8FD0\u884C\u65F6\u6E05\u5355\u5168\u5C40\u53D8\u91CF: ${this.options.runtimeGlobalName}`)}logStats(t,e){const n=Object.keys(this.assetMap).length;this.logger.success(`\u8D44\u6E90\u6E05\u5355\u5DF2\u751F\u6210: ${t} \u4E2A\u8D44\u6E90\u6587\u4EF6\uFF0C${n} \u6761\u6620\u5C04\u8BB0\u5F55`,`\u683C\u5F0F: ${this.options.outputFormat}\uFF0C\u8F93\u51FA: ${this.options.outputFile}\uFF0C\u8017\u65F6: ${e}ms`),this.groups&&this.groups.length>0&&this.logger.info(`\u5165\u53E3\u5206\u7EC4: ${this.groups.map(o=>`${o.entry}(${o.assets.js.length+o.assets.css.length+o.assets.other.length})`).join(", ")}`)}getAssetMap(){return{...this.assetMap}}getManifest(){return this.manifest}getGroups(){return this.groups}}const assetManifest=factory_index.createPluginFactory(F);exports.assetManifest=assetManifest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import c from"node:path";import F from"node:fs";import{createPluginFactory as v,BasePlugin as C}from"../../factory/index.mjs";import{scanDirectory as P,writeFileContent as g}from"../../common/fs/index.mjs";import{normalizePath as h,isExtensionIncluded as y,isPathExcluded as A,isPreCompressed as w}from"../../common/path/index.mjs";import{injectBeforeTag as j}from"../../common/html/index.mjs";import{validateGlobalName as D}from"../../common/validation/index.mjs";import"../../logger/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";import"fs";import"path";import"../../shared/vite-plugin.CuXEJAWX.mjs";function b(s,t,e){const u=h(s);if(!y(t,{includeExtensions:e.includeExtensions,excludeExtensions:e.excludeExtensions})||A(s,e.excludePaths,{matchMode:"segment"}))return!1;const i=h(e.outputFile);return!(u===i||u.endsWith("/"+i)||u.endsWith("manifest.json")||u.endsWith("asset-manifest.json")||w(t))}async function B(s,t){return(await P(s,{filter:(e,u,i)=>{const
|
|
1
|
+
import c from"node:path";import F from"node:fs";import{createPluginFactory as v,BasePlugin as C}from"../../factory/index.mjs";import{scanDirectory as P,writeFileContent as g}from"../../common/fs/index.mjs";import{normalizePath as h,isExtensionIncluded as y,isPathExcluded as A,isPreCompressed as w}from"../../common/path/index.mjs";import{injectBeforeTag as j}from"../../common/html/index.mjs";import{validateGlobalName as D}from"../../common/validation/index.mjs";import"../../logger/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";import"fs";import"path";import"../../common/concurrency/index.mjs";import"../../shared/vite-plugin.CuXEJAWX.mjs";function b(s,t,e){const u=h(s);if(!y(t,{includeExtensions:e.includeExtensions,excludeExtensions:e.excludeExtensions})||A(s,e.excludePaths,{matchMode:"segment"}))return!1;const i=h(e.outputFile);return!(u===i||u.endsWith("/"+i)||u.endsWith("manifest.json")||u.endsWith("asset-manifest.json")||w(t))}async function B(s,t){return(await P(s,{filter:(e,u,i)=>{const o=h(c.relative(s,e));return b(o,u,t)}})).map(e=>({filePath:e.filePath,relativePath:h(c.relative(s,e.filePath)),size:e.size,ext:e.extension}))}function $(s,t,e){const u={},i=t.endsWith("/")?t:t+"/";for(const o of s){const r=x(o.relativePath),n=i+o.relativePath;u[r]!==void 0&&u[r]!==n?(u[o.relativePath]=n,e?.(`\u8D44\u6E90\u952E\u540D\u51B2\u7A81: "${r}" \u5DF2\u88AB ${u[r]} \u5360\u7528\uFF0C"${o.relativePath}" \u5C06\u4F7F\u7528\u5B8C\u6574\u8DEF\u5F84\u4F5C\u4E3A\u952E`)):u[r]=n}return u}function x(s){const t=/[-.]([0-9a-f]{6,20})(?=\.)/g;return s.replace(t,"")}function M(s,t,e,u,i){switch(t){case"vite":return E(s,u,i);case"webpack":return N(s,i);case"custom":return O(s,e);default:return E(s,u,i)}}function E(s,t,e){const u={version:"1.0",timestamp:new Date().toISOString(),publicPath:t,assets:s};return e&&e.length>0&&(u.groups=e),u}function N(s,t){return t&&t.length>0?{entries:t.map(e=>({name:e.entry,files:[...e.assets.js,...e.assets.css,...e.assets.other]})),assets:s}:{entries:[{name:"main",files:Object.values(s)}],assets:s}}function O(s,t){if(!t)throw new Error('outputFormat \u4E3A "custom" \u65F6\uFF0CcustomFormatter \u4E0D\u80FD\u4E3A\u7A7A');return t(s)}function S(s,t){const e=new Map,u=new Set,i=s.filter(_);for(const n of i){const a=f(n.relativePath);e.has(a)||e.set(a,{entry:a,assets:{js:[],css:[],other:[]}});const l=e.get(a),p=t[n.relativePath]||n.relativePath;m(l,p,n.ext),u.add(n.relativePath)}const o=s.filter(n=>!u.has(n.relativePath)&&!G(n));for(const n of o){const a=W(n,i),l=a?f(a.relativePath):"_shared";e.has(l)||e.set(l,{entry:l,assets:{js:[],css:[],other:[]}});const p=e.get(l),d=t[n.relativePath]||n.relativePath;m(p,d,n.ext),u.add(n.relativePath)}const r=s.filter(n=>!u.has(n.relativePath));if(r.length>0){e.has("_shared")||e.set("_shared",{entry:"_shared",assets:{js:[],css:[],other:[]}});const n=e.get("_shared");for(const a of r){const l=t[a.relativePath]||a.relativePath;m(n,l,a.ext)}}return Array.from(e.values())}function _(s){const{relativePath:t,ext:e}=s,u=t.split("/").pop()||"";return!!(e===".html"||(e===".js"||e===".mjs")&&(u.startsWith("entry-")||u.startsWith("main")||!t.includes("/")))}function G(s){return[".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".woff",".woff2",".ttf",".eot",".map"].includes(s.ext)}function f(s){let t=(s.split("/").pop()||"").replace(/\.[^.]+$/,"");return t.startsWith("entry-")&&(t=t.slice(6)),t.replace(/[-.][0-9a-f]{6,20}$/,"")||t}function W(s,t){const e=s.relativePath.split("/").slice(0,-1).join("/"),u=(s.relativePath.split("/").pop()||"").replace(/\.[^.]+$/,"").replace(/[-.][0-9a-f]{6,20}$/,"");let i=null,o=0;for(const r of t){const n=r.relativePath.split("/").slice(0,-1).join("/"),a=f(r.relativePath);if(e===n)return r;u.startsWith(a)&&a.length>o&&(i=r,o=a.length)}return i}function m(s,t,e){e===".js"||e===".mjs"?s.assets.js.push(t):e===".css"?s.assets.css.push(t):s.assets.other.push(t)}function R(s,t){const e=JSON.stringify(s).replace(/<\/script>/gi,"<\\/script>");return`<script>Object.defineProperty(window,"${t}",{value:Object.freeze(${e}),writable:false,configurable:false})<\/script>`}function T(s,t,e){const u=R(t,e);return j(s,"</head>",u)}async function k(s){const t=[];async function e(u){const i=await F.promises.readdir(u,{withFileTypes:!0});for(const o of i){const r=c.join(u,o.name);o.isDirectory()?await e(r):o.isFile()&&o.name.endsWith(".html")&&t.push(r)}}return await e(s),t}class z extends C{manifest=null;assetMap={};groups=null;getDefaultOptions(){return{outputFormat:"vite",outputFile:"manifest.json",includeExtensions:[],publicPath:"/",injectRuntime:!1,runtimeGlobalName:"__ASSET_MANIFEST__",customFormatter:null,groupByEntry:!1,excludeExtensions:[".map",".gz",".br"],excludePaths:[]}}validateOptions(){this.validator.field("outputFormat").enum(["vite","webpack","custom"]).field("outputFile").custom(t=>typeof t=="string"&&t.length>0,"outputFile \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("publicPath").custom(t=>typeof t=="string"&&t.length>0,"publicPath \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("injectRuntime").boolean().field("runtimeGlobalName").custom(t=>typeof t=="string"&&t.length>0,"runtimeGlobalName \u5FC5\u987B\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32").field("groupByEntry").boolean().field("customFormatter").custom(t=>this.options.outputFormat!=="custom"||typeof t=="function",'outputFormat \u4E3A "custom" \u65F6\uFF0CcustomFormatter \u5FC5\u987B\u4E3A\u51FD\u6570').validate(),D(this.options.runtimeGlobalName,"runtimeGlobalName")}getPluginName(){return"asset-manifest"}getEnforce(){return"post"}addPluginHooks(t){t.writeBundle={order:"post",handler:async()=>{await this.safeExecute(()=>this.generateManifest(),"\u751F\u6210\u8D44\u6E90\u6E05\u5355")}}}async generateManifest(){if(!this.viteConfig)return;const t=this.viteConfig.build.outDir,e=Date.now();this.logger.info(`\u5F00\u59CB\u626B\u63CF\u6784\u5EFA\u4EA7\u7269\u76EE\u5F55: ${t}`);const u=await B(t,this.options);if(u.length===0){this.logger.info("\u672A\u627E\u5230\u9700\u8981\u8BB0\u5F55\u7684\u8D44\u6E90\u6587\u4EF6");return}this.assetMap=$(u,this.options.publicPath,n=>{this.logger.warn(n)}),this.options.groupByEntry&&(this.groups=S(u,this.assetMap));const i=M(this.assetMap,this.options.outputFormat,this.options.customFormatter,this.options.publicPath,this.groups??void 0),o=c.isAbsolute(this.options.outputFile)?this.options.outputFile:c.join(t,this.options.outputFile);await g(o,JSON.stringify(i,null,2)),this.options.outputFormat==="vite"&&(this.manifest=i),this.options.injectRuntime&&await this.injectRuntimeToHtmlFiles(t);const r=Date.now()-e;this.logStats(u.length,r)}async injectRuntimeToHtmlFiles(t){if(!this.manifest&&Object.keys(this.assetMap).length===0){this.logger.warn("\u8D44\u6E90\u6E05\u5355\u5C1A\u672A\u751F\u6210\uFF0C\u8DF3\u8FC7\u8FD0\u884C\u65F6\u6CE8\u5165");return}const e=this.manifest?.assets||this.assetMap,u=await k(t);if(u.length===0){this.logger.warn("\u672A\u627E\u5230 HTML \u6587\u4EF6\uFF0C\u8FD0\u884C\u65F6\u6E05\u5355\u6CE8\u5165\u8DF3\u8FC7");return}for(const i of u)try{const o=await F.promises.readFile(i,"utf-8"),r=T(o,e,this.options.runtimeGlobalName);r.injected?(await g(i,r.html),this.logger.info(`\u8FD0\u884C\u65F6\u6E05\u5355\u5DF2\u6CE8\u5165\u5230: ${c.relative(t,i)}`)):this.logger.warn(`\u672A\u627E\u5230 </head> \u6807\u7B7E\uFF0C\u8DF3\u8FC7\u6CE8\u5165: ${c.relative(t,i)}`)}catch(o){this.logger.error(`\u6CE8\u5165\u8FD0\u884C\u65F6\u6E05\u5355\u5931\u8D25: ${i} - ${o instanceof Error?o.message:String(o)}`)}this.logger.info(`\u8FD0\u884C\u65F6\u6E05\u5355\u5168\u5C40\u53D8\u91CF: ${this.options.runtimeGlobalName}`)}logStats(t,e){const u=Object.keys(this.assetMap).length;this.logger.success(`\u8D44\u6E90\u6E05\u5355\u5DF2\u751F\u6210: ${t} \u4E2A\u8D44\u6E90\u6587\u4EF6\uFF0C${u} \u6761\u6620\u5C04\u8BB0\u5F55`,`\u683C\u5F0F: ${this.options.outputFormat}\uFF0C\u8F93\u51FA: ${this.options.outputFile}\uFF0C\u8017\u65F6: ${e}ms`),this.groups&&this.groups.length>0&&this.logger.info(`\u5165\u53E3\u5206\u7EC4: ${this.groups.map(i=>`${i.entry}(${i.assets.js.length+i.assets.css.length+i.assets.other.length})`).join(", ")}`)}getAssetMap(){return{...this.assetMap}}getManifest(){return this.manifest}getGroups(){return this.groups}}const H=v(z);export{H as assetManifest};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),common_fs_index=require("../../common/fs/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path");function _interopDefaultCompat(
|
|
2
|
-
`;)e.push(" "),t++;continue}if(
|
|
1
|
+
"use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),common_fs_index=require("../../common/fs/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path"),require("../../common/concurrency/index.cjs");function _interopDefaultCompat(n){return n&&typeof n=="object"&&"default"in n?n.default:n}const u__default=_interopDefaultCompat(u),l__default=_interopDefaultCompat(l);function h$1(n,e){const t=v(n,e);if(t.length>0)return t;const s=l__default.isAbsolute(n)?n:l__default.resolve(e,n),o=["",".ts",".js",".mts",".mjs","/index.ts","/index.js"];for(const c of o){const r=s+c;if(u__default.existsSync(r)&&u__default.statSync(r).isFile()){const a=parseModuleExports(r);if(a&&a.exports.length>0)return a.exports}}const i=R$1(n,e);if(i){const c=parseModuleExports(i);if(c&&c.exports.length>0)return c.exports}return[]}function v(n,e){try{let t=null;try{const r=require.resolve(n,{paths:[e]});let a=l__default.dirname(r);for(;a!==l__default.dirname(a);){if(u__default.existsSync(l__default.join(a,"package.json"))){t=a;break}a=l__default.dirname(a)}}catch{}if(!t){const r=l__default.resolve(e,"node_modules",n);u__default.existsSync(l__default.join(r,"package.json"))&&(t=r)}if(!t)return[];const s=l__default.join(t,"package.json"),o=JSON.parse(u__default.readFileSync(s,"utf-8"));let i=null;const c=o.types||o.typings;if(c&&typeof c=="string"){const r=l__default.resolve(t,c);u__default.existsSync(r)&&(i=r)}if(!i&&o.exports){const r=o.exports["."];if(r){const a=typeof r=="string"?null:r.import?.types||r.types||r.default?.types;if(typeof a=="string"){const p=l__default.resolve(t,a);u__default.existsSync(p)&&(i=p)}}}if(!i){const r=["dist/index.d.ts","index.d.ts","dist/index.d.mts","index.d.mts"];for(const a of r){const p=l__default.resolve(t,a);if(u__default.existsSync(p)){i=p;break}}}return i?E(i,e,new Set):[]}catch{return[]}}function E(n,e,t){if(t.has(n))return[];t.add(n);const s=new Set;try{const o=u__default.readFileSync(n,"utf-8"),i=/export\s*\{([^}]+)\}/g;let c;for(;(c=i.exec(o))!==null;){const k=c[1].split(",").map(m=>{const x=m.trim().split(/\s+as\s+/);return x.length>1?x[x.length-1].trim():x[0].trim()});for(const m of k)m&&m!=="default"&&s.add(m)}const r=/export\s+declare\s+(?:const|let|var|function|class)\s+(\w+)/g;for(;(c=r.exec(o))!==null;)s.add(c[1]);const a=/export\s+(?:type|interface)\s+(\w+)/g;for(;(c=a.exec(o))!==null;)s.add(c[1]);const p=/export\s+\*\s+from\s+['"]([^'"]+)['"]/g;for(;(c=p.exec(o))!==null;){const k=c[1],m=w(k,n,e,t);for(const x of m)s.add(x)}}catch{}return[...s]}function w(n,e,t,s){if(n.startsWith(".")){const o=l__default.dirname(e),i=[".d.ts",".d.mts","/index.d.ts","/index.d.mts"];for(const c of i){const r=l__default.resolve(o,n+c);if(u__default.existsSync(r))return E(r,t,s)}}return v(n,t)}function R$1(n,e){try{const t=require.resolve(n,{paths:[e]});if(u__default.existsSync(t))return t}catch{}try{let t=null;try{const c=require.resolve(n,{paths:[e]});let r=l__default.dirname(c);for(;r!==l__default.dirname(r);){if(u__default.existsSync(l__default.join(r,"package.json"))){t=r;break}r=l__default.dirname(r)}}catch{}if(!t){const c=l__default.resolve(e,"node_modules",n);u__default.existsSync(l__default.join(c,"package.json"))&&(t=c)}if(!t)return null;const s=l__default.join(t,"package.json"),o=JSON.parse(u__default.readFileSync(s,"utf-8"));if(o.exports){const c=typeof o.exports=="string"?o.exports:o.exports["."]?.import||o.exports["."]?.default||o.exports["."];if(typeof c=="string"){const r=l__default.resolve(t,c);if(u__default.existsSync(r))return r}}if(o.main){const c=l__default.resolve(t,o.main);if(u__default.existsSync(c))return c}const i=l__default.resolve(t,"index.js");return u__default.existsSync(i)?i:null}catch{return null}}function resolveImports(n,e){if(!n)return[];const t=[];if(Array.isArray(n))for(const s of n)if("module"in s&&"names"in s){const o=s;if(o.names.includes("*")){const i=e||process.cwd(),c=h$1(o.module,i);for(const r of c)t.push({module:o.module,name:r,isDefault:o.defaultImport??!1})}else for(const i of o.names)t.push({module:o.module,name:i,isDefault:o.defaultImport??!1})}else{const o=s;for(const[i,c]of Object.entries(o))if(c.includes("*")){const r=e||process.cwd(),a=h$1(i,r);for(const p of a)t.push({module:i,name:p,isDefault:!1})}else for(const r of c)t.push({module:i,name:r,isDefault:!1})}else for(const[s,o]of Object.entries(n))if(o.includes("*")){const i=e||process.cwd(),c=h$1(s,i);for(const r of c)t.push({module:s,name:r,isDefault:!1})}else for(const i of o)t.push({module:s,name:i,isDefault:!1});return t}function buildNameLookup(n){const e=new Map;for(const t of n)e.set(t.name,t);return e}function j$1(n){const e=l__default.basename(n,l__default.extname(n));return e==="index"?l__default.basename(l__default.dirname(n)):e}function scanDirectories(n,e){const t=[];for(const s of n){const o=l__default.isAbsolute(s)?s:l__default.resolve(e,s);!u__default.existsSync(o)||!u__default.statSync(o).isDirectory()||S(o,t)}return t}function S(n,e){const t=u__default.readdirSync(n,{withFileTypes:!0});for(const s of t){const o=l__default.join(n,s.name);if(s.isDirectory()){if(s.name==="node_modules"||s.name.startsWith("."))continue;S(o,e);continue}if(!s.isFile())continue;const i=l__default.extname(s.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(i)||s.name.endsWith(".d.ts"))continue;const c=parseModuleExports(o);c&&e.push(c)}}function parseModuleExports(n){try{const e=u__default.readFileSync(n,"utf-8"),t=[];let s=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let i;for(;(i=o.exec(e))!==null;)t.push(i[1]);const c=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(i=c.exec(e))!==null;)t.push(i[1]);const r=/export\s+class\s+(\w+)/g;for(;(i=r.exec(e))!==null;)t.push(i[1]);const a=/export\s*\{([^}]+)\}/g;for(;(i=a.exec(e))!==null;){const x=i[1].split(",").map($=>{const g=$.trim().split(/\s+as\s+/);return g.length>1?g[g.length-1].trim():g[0].trim()});for(const $ of x)$&&$!=="default"&&t.push($)}const p=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);p&&(s=p[1]||p[2]||p[3]||j$1(n));const k=/export\s+(?:type|interface)\s+(\w+)/g;for(;(i=k.exec(e))!==null;)t.push(i[1]);const m=/^(?:exports\.(\w+)\s*=|module\.exports\s*=\s*\{)/gm;for(;(i=m.exec(e))!==null;)i[1]&&t.push(i[1]);return t.length===0&&s===null?null:{filePath:n,exports:t,defaultExport:s}}catch{return null}}function scannedModulesToImports(n){const e=[];for(const t of n){for(const s of t.exports)e.push({module:t.filePath,name:s,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const h=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function b(n){const e=[];let t=0;const s=n.length;for(;t<s;){if(n[t]==="/"&&n[t+1]==="/"){for(;t<s&&n[t]!==`
|
|
2
|
+
`;)e.push(" "),t++;continue}if(n[t]==="/"&&n[t+1]==="*"){for(e.push(" "),e.push(" "),t+=2;t<s&&!(n[t-1]==="*"&&n[t]==="/");)e.push(n[t]===`
|
|
3
3
|
`?`
|
|
4
|
-
`:" "),t++;t<
|
|
4
|
+
`:" "),t++;t<s&&(e.push(" "),t++);continue}if(n[t]==="'"){for(e.push(" "),t++;t<s&&n[t]!=="'";){if(n[t]==="\\"&&t+1<s){e.push(" "),e.push(" "),t+=2;continue}e.push(n[t]===`
|
|
5
5
|
`?`
|
|
6
|
-
`:" "),t++}t<
|
|
6
|
+
`:" "),t++}t<s&&(e.push(" "),t++);continue}if(n[t]==='"'){for(e.push(" "),t++;t<s&&n[t]!=='"';){if(n[t]==="\\"&&t+1<s){e.push(" "),e.push(" "),t+=2;continue}e.push(n[t]===`
|
|
7
7
|
`?`
|
|
8
|
-
`:" "),t++}t<
|
|
8
|
+
`:" "),t++}t<s&&(e.push(" "),t++);continue}if(n[t]==="`"){for(e.push(" "),t++;t<s&&n[t]!=="`";){if(n[t]==="\\"&&t+1<s){e.push(" "),e.push(" "),t+=2;continue}if(n[t]==="$"&&n[t+1]==="{"){e.push(" "),e.push(" "),t+=2;let o=1;for(;t<s&&o>0;)n[t]==="{"&&o++,n[t]==="}"&&o--,o>0&&(e.push(n[t]),t++);t<s&&(e.push(" "),t++);continue}e.push(n[t]===`
|
|
9
9
|
`?`
|
|
10
|
-
`:" "),t++}t<
|
|
11
|
-
`)}function injectImports(
|
|
10
|
+
`:" "),t++}t<s&&(e.push(" "),t++);continue}e.push(n[t]),t++}return e.join("")}function f(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function detectUsedImports(n,e,t){const s=[],o=new Set,i=b(n),c=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let r;for(;(r=c.exec(i))!==null;){const a=r[1];if(h.has(a)||o.has(a)||t.has(a))continue;const p=e.get(a);p&&(o.add(a),s.push(p))}return s}function isAlreadyImported(n,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${f(e)}\\b[^}]*\\}\\s*from`,"m").test(n)||new RegExp(`import\\s+${f(e)}\\s+from`,"m").test(n)||new RegExp(`import\\s*\\*\\s*as\\s+${f(e)}\\s+from`,"m").test(n))}function generateImportStatements(n){const e=new Map;for(const s of n){e.has(s.module)||e.set(s.module,{named:[],default_:null});const o=e.get(s.module);s.isDefault?o.default_===null&&(o.default_=s.name):o.named.includes(s.name)||o.named.push(s.name)}const t=[];for(const[s,o]of e){const i=[];o.default_&&i.push(o.default_),o.named.length>0&&i.push(`{ ${o.named.join(", ")} }`),i.length>0&&t.push(`import ${i.join(", ")} from '${s}'`)}return t.join(`
|
|
11
|
+
`)}function injectImports(n,e,t){if(!e.trim())return n;if(t==="top")return d$1(n,e);const s=findLastImportEnd(n);return s===-1?d$1(n,e):n.slice(0,s)+`
|
|
12
12
|
`+e+`
|
|
13
|
-
`+
|
|
14
|
-
`);o!==-1?t=o+1:t=
|
|
15
|
-
`+
|
|
16
|
-
`),m=[],x=new Set
|
|
13
|
+
`+n.slice(s)}function d$1(n,e){let t=0;if(n.startsWith("#!")){const o=n.indexOf(`
|
|
14
|
+
`);o!==-1?t=o+1:t=n.length}const s=n.slice(t).match(/^\s*["']use strict["'];?\s*\n?/);return s&&(t+=s[0].length),n.slice(0,t)+e+`
|
|
15
|
+
`+n.slice(t)}function findLastImportEnd(n){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let s;for(;(s=t.exec(n))!==null;){const o=s.index+s[0].length;o>e&&(e=o)}return e}function detectVueTemplateImports(n,e,t){const s=n.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!s)return[];const o=s[1],i=[],c=/\{\{([\s\S]*?)\}\}/g;let r;for(;(r=c.exec(o))!==null;)i.push(r[1]);const a=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(r=a.exec(o))!==null;)i.push(r[1]);const p=/v-model="([^"]*)"/g;for(;(r=p.exec(o))!==null;)i.push(r[1]);if(i.length===0)return[];const k=i.join(`
|
|
16
|
+
`),m=[],x=new Set,$=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(r=$.exec(k))!==null;){const g=r[1];if(x.has(g)||t.has(g)||h.has(g)||R(g)||I(g))continue;const A=e.get(g);A&&(x.add(g),m.push(A))}return m}const y=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function R(n){return y.has(n.toLowerCase())}function injectIntoScriptSetup(n,e){if(!e.trim())return n;const t=n.match(/<script\s+setup[^>]*>/);if(!t)return n;const s=t.index+t[0].length;return n.slice(0,s)+`
|
|
17
17
|
`+e+`
|
|
18
|
-
`+
|
|
19
|
-
`)}function writeDtsFile(
|
|
18
|
+
`+n.slice(s)}function isRawSfc(n){return/<script[\s>]/.test(n)}function I(n){return n.startsWith("v")&&n.length>1&&n[1]===n[1].toUpperCase()}const d=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","as","implements","interface","let","package","private","protected","public","static","yield","abstract","any","boolean","constructor","declare","get","infer","is","keyof","module","namespace","never","readonly","require","number","object","set","string","symbol","type","undefined","unique","unknown","from","of","async","await","global"]);function generateDtsContent(n){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const c of n)t.has(c.module)||t.set(c.module,[]),t.get(c.module).push(c);const s=new Set,o=new Map,i=[...t.entries()].reverse();for(const[c,r]of i){const a=[];for(const p of r)s.has(p.name)||(s.add(p.name),a.push(p));a.length>0&&o.set(c,a)}e.push("declare global {");for(const c of t.keys()){const r=o.get(c);if(r){e.push(` // from '${c}'`);for(const a of r)d.has(a.name)||(a.isDefault?e.push(` const ${a.name}: typeof import('${c}')['default']`):e.push(` const ${a.name}: typeof import('${c}')['${a.name}']`));e.push("")}}return e.push("}"),e.join(`
|
|
19
|
+
`)}function writeDtsFile(n,e){common_fs_index.writeFileSyncSafely(n,e)}function shouldUpdateDts(n,e){return common_fs_index.shouldUpdateFileContent(n,e)}class j extends factory_index.BasePlugin{nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"src/auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/^(?!.*node_modules).*\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||e===!0||typeof e=="string","dts \u5FC5\u987B\u4E3A false\u3001true \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,s)=>!this.initialized||!this.options.fileFilter.test(s)?null:this.transformCode(t,s)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=this.viteConfig?.root||process.cwd(),t=resolveImports(this.options.imports,e),s=scanDirectories(this.options.dirs,e),o=scannedModulesToImports(s);this.allResolvedImports=[...t,...o],this.nameLookup=buildNameLookup(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${s.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){const s=t.endsWith(".vue")&&isRawSfc(e);let o=detectUsedImports(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&s){const c=detectVueTemplateImports(e,this.nameLookup,this.ignoreSet),r=new Set(o.map(a=>a.name));for(const a of c)r.has(a.name)||(r.add(a.name),o.push(a))}if(o=o.filter(c=>!isAlreadyImported(e,c.name)),o.length===0)return null;const i=generateImportStatements(o);return{code:s?injectIntoScriptSetup(e,i):injectImports(e,i,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=typeof this.options.dts=="string"?this.options.dts:"src/auto-imports.d.ts",s=l__default.isAbsolute(t)?t:l__default.resolve(e,t),o=generateDtsContent(this.allResolvedImports);shouldUpdateDts(s,o)&&this.safeExecuteSync(()=>{writeDtsFile(s,o),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const autoImport=factory_index.createPluginFactory(j);exports.autoImport=autoImport;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createPluginFactory as
|
|
1
|
+
import{createPluginFactory as A,BasePlugin as I}from"../../factory/index.mjs";import f from"node:fs";import l from"node:path";import{shouldUpdateFileContent as E,writeFileSyncSafely as F}from"../../common/fs/index.mjs";import"../../logger/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";import"fs";import"path";import"../../common/concurrency/index.mjs";function x(s,e){const t=S(s,e);if(t.length>0)return t;const n=l.isAbsolute(s)?s:l.resolve(e,s),o=["",".ts",".js",".mts",".mjs","/index.ts","/index.js"];for(const u of o){const r=n+u;if(f.existsSync(r)&&f.statSync(r).isFile()){const a=y(r);if(a&&a.exports.length>0)return a.exports}}const i=R(s,e);if(i){const u=y(i);if(u&&u.exports.length>0)return u.exports}return[]}function S(s,e){try{let t=null;try{const r=require.resolve(s,{paths:[e]});let a=l.dirname(r);for(;a!==l.dirname(a);){if(f.existsSync(l.join(a,"package.json"))){t=a;break}a=l.dirname(a)}}catch{}if(!t){const r=l.resolve(e,"node_modules",s);f.existsSync(l.join(r,"package.json"))&&(t=r)}if(!t)return[];const n=l.join(t,"package.json"),o=JSON.parse(f.readFileSync(n,"utf-8"));let i=null;const u=o.types||o.typings;if(u&&typeof u=="string"){const r=l.resolve(t,u);f.existsSync(r)&&(i=r)}if(!i&&o.exports){const r=o.exports["."];if(r){const a=typeof r=="string"?null:r.import?.types||r.types||r.default?.types;if(typeof a=="string"){const c=l.resolve(t,a);f.existsSync(c)&&(i=c)}}}if(!i){const r=["dist/index.d.ts","index.d.ts","dist/index.d.mts","index.d.mts"];for(const a of r){const c=l.resolve(t,a);if(f.existsSync(c)){i=c;break}}}return i?b(i,e,new Set):[]}catch{return[]}}function b(s,e,t){if(t.has(s))return[];t.add(s);const n=new Set;try{const o=f.readFileSync(s,"utf-8"),i=/export\s*\{([^}]+)\}/g;let u;for(;(u=i.exec(o))!==null;){const h=u[1].split(",").map(p=>{const m=p.trim().split(/\s+as\s+/);return m.length>1?m[m.length-1].trim():m[0].trim()});for(const p of h)p&&p!=="default"&&n.add(p)}const r=/export\s+declare\s+(?:const|let|var|function|class)\s+(\w+)/g;for(;(u=r.exec(o))!==null;)n.add(u[1]);const a=/export\s+(?:type|interface)\s+(\w+)/g;for(;(u=a.exec(o))!==null;)n.add(u[1]);const c=/export\s+\*\s+from\s+['"]([^'"]+)['"]/g;for(;(u=c.exec(o))!==null;){const h=u[1],p=D(h,s,e,t);for(const m of p)n.add(m)}}catch{}return[...n]}function D(s,e,t,n){if(s.startsWith(".")){const o=l.dirname(e),i=[".d.ts",".d.mts","/index.d.ts","/index.d.mts"];for(const u of i){const r=l.resolve(o,s+u);if(f.existsSync(r))return b(r,t,n)}}return S(s,t)}function R(s,e){try{const t=require.resolve(s,{paths:[e]});if(f.existsSync(t))return t}catch{}try{let t=null;try{const u=require.resolve(s,{paths:[e]});let r=l.dirname(u);for(;r!==l.dirname(r);){if(f.existsSync(l.join(r,"package.json"))){t=r;break}r=l.dirname(r)}}catch{}if(!t){const u=l.resolve(e,"node_modules",s);f.existsSync(l.join(u,"package.json"))&&(t=u)}if(!t)return null;const n=l.join(t,"package.json"),o=JSON.parse(f.readFileSync(n,"utf-8"));if(o.exports){const u=typeof o.exports=="string"?o.exports:o.exports["."]?.import||o.exports["."]?.default||o.exports["."];if(typeof u=="string"){const r=l.resolve(t,u);if(f.existsSync(r))return r}}if(o.main){const u=l.resolve(t,o.main);if(f.existsSync(u))return u}const i=l.resolve(t,"index.js");return f.existsSync(i)?i:null}catch{return null}}function C(s,e){if(!s)return[];const t=[];if(Array.isArray(s))for(const n of s)if("module"in n&&"names"in n){const o=n;if(o.names.includes("*")){const i=e||process.cwd(),u=x(o.module,i);for(const r of u)t.push({module:o.module,name:r,isDefault:o.defaultImport??!1})}else for(const i of o.names)t.push({module:o.module,name:i,isDefault:o.defaultImport??!1})}else{const o=n;for(const[i,u]of Object.entries(o))if(u.includes("*")){const r=e||process.cwd(),a=x(i,r);for(const c of a)t.push({module:i,name:c,isDefault:!1})}else for(const r of u)t.push({module:i,name:r,isDefault:!1})}else for(const[n,o]of Object.entries(s))if(o.includes("*")){const i=e||process.cwd(),u=x(n,i);for(const r of u)t.push({module:n,name:r,isDefault:!1})}else for(const i of o)t.push({module:n,name:i,isDefault:!1});return t}function B(s){const e=new Map;for(const t of s)e.set(t.name,t);return e}function _(s){const e=l.basename(s,l.extname(s));return e==="index"?l.basename(l.dirname(s)):e}function P(s,e){const t=[];for(const n of s){const o=l.isAbsolute(n)?n:l.resolve(e,n);!f.existsSync(o)||!f.statSync(o).isDirectory()||j(o,t)}return t}function j(s,e){const t=f.readdirSync(s,{withFileTypes:!0});for(const n of t){const o=l.join(s,n.name);if(n.isDirectory()){if(n.name==="node_modules"||n.name.startsWith("."))continue;j(o,e);continue}if(!n.isFile())continue;const i=l.extname(n.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(i)||n.name.endsWith(".d.ts"))continue;const u=y(o);u&&e.push(u)}}function y(s){try{const e=f.readFileSync(s,"utf-8"),t=[];let n=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let i;for(;(i=o.exec(e))!==null;)t.push(i[1]);const u=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(i=u.exec(e))!==null;)t.push(i[1]);const r=/export\s+class\s+(\w+)/g;for(;(i=r.exec(e))!==null;)t.push(i[1]);const a=/export\s*\{([^}]+)\}/g;for(;(i=a.exec(e))!==null;){const m=i[1].split(",").map(g=>{const d=g.trim().split(/\s+as\s+/);return d.length>1?d[d.length-1].trim():d[0].trim()});for(const g of m)g&&g!=="default"&&t.push(g)}const c=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);c&&(n=c[1]||c[2]||c[3]||_(s));const h=/export\s+(?:type|interface)\s+(\w+)/g;for(;(i=h.exec(e))!==null;)t.push(i[1]);const p=/^(?:exports\.(\w+)\s*=|module\.exports\s*=\s*\{)/gm;for(;(i=p.exec(e))!==null;)i[1]&&t.push(i[1]);return t.length===0&&n===null?null:{filePath:s,exports:t,defaultExport:n}}catch{return null}}function M(s){const e=[];for(const t of s){for(const n of t.exports)e.push({module:t.filePath,name:n,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const k=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function L(s){const e=[];let t=0;const n=s.length;for(;t<n;){if(s[t]==="/"&&s[t+1]==="/"){for(;t<n&&s[t]!==`
|
|
2
2
|
`;)e.push(" "),t++;continue}if(s[t]==="/"&&s[t+1]==="*"){for(e.push(" "),e.push(" "),t+=2;t<n&&!(s[t-1]==="*"&&s[t]==="/");)e.push(s[t]===`
|
|
3
3
|
`?`
|
|
4
4
|
`:" "),t++;t<n&&(e.push(" "),t++);continue}if(s[t]==="'"){for(e.push(" "),t++;t<n&&s[t]!=="'";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}e.push(s[t]===`
|
|
@@ -7,13 +7,13 @@ import{createPluginFactory as k,BasePlugin as I}from"../../factory/index.mjs";im
|
|
|
7
7
|
`?`
|
|
8
8
|
`:" "),t++}t<n&&(e.push(" "),t++);continue}if(s[t]==="`"){for(e.push(" "),t++;t<n&&s[t]!=="`";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}if(s[t]==="$"&&s[t+1]==="{"){e.push(" "),e.push(" "),t+=2;let o=1;for(;t<n&&o>0;)s[t]==="{"&&o++,s[t]==="}"&&o--,o>0&&(e.push(s[t]),t++);t<n&&(e.push(" "),t++);continue}e.push(s[t]===`
|
|
9
9
|
`?`
|
|
10
|
-
`:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function w(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(s,e,t){const n=[],o=new Set,i=L(s),u=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let r;for(;(r=u.exec(i))!==null;){const
|
|
11
|
-
`)}function
|
|
10
|
+
`:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function w(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(s,e,t){const n=[],o=new Set,i=L(s),u=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let r;for(;(r=u.exec(i))!==null;){const a=r[1];if(k.has(a)||o.has(a)||t.has(a))continue;const c=e.get(a);c&&(o.add(a),n.push(c))}return n}function O(s,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${w(e)}\\b[^}]*\\}\\s*from`,"m").test(s)||new RegExp(`import\\s+${w(e)}\\s+from`,"m").test(s)||new RegExp(`import\\s*\\*\\s*as\\s+${w(e)}\\s+from`,"m").test(s))}function q(s){const e=new Map;for(const n of s){e.has(n.module)||e.set(n.module,{named:[],default_:null});const o=e.get(n.module);n.isDefault?o.default_===null&&(o.default_=n.name):o.named.includes(n.name)||o.named.push(n.name)}const t=[];for(const[n,o]of e){const i=[];o.default_&&i.push(o.default_),o.named.length>0&&i.push(`{ ${o.named.join(", ")} }`),i.length>0&&t.push(`import ${i.join(", ")} from '${n}'`)}return t.join(`
|
|
11
|
+
`)}function z(s,e,t){if(!e.trim())return s;if(t==="top")return $(s,e);const n=T(s);return n===-1?$(s,e):s.slice(0,n)+`
|
|
12
12
|
`+e+`
|
|
13
|
-
`+s.slice(n)}function
|
|
13
|
+
`+s.slice(n)}function $(s,e){let t=0;if(s.startsWith("#!")){const o=s.indexOf(`
|
|
14
14
|
`);o!==-1?t=o+1:t=s.length}const n=s.slice(t).match(/^\s*["']use strict["'];?\s*\n?/);return n&&(t+=n[0].length),s.slice(0,t)+e+`
|
|
15
|
-
`+s.slice(t)}function
|
|
16
|
-
`),p=[],m=new Set,g=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(r=g.exec(h))!==null;){const d=r[1];if(m.has(d)||t.has(d)
|
|
15
|
+
`+s.slice(t)}function T(s){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let n;for(;(n=t.exec(s))!==null;){const o=n.index+n[0].length;o>e&&(e=o)}return e}function U(s,e,t){const n=s.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!n)return[];const o=n[1],i=[],u=/\{\{([\s\S]*?)\}\}/g;let r;for(;(r=u.exec(o))!==null;)i.push(r[1]);const a=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(r=a.exec(o))!==null;)i.push(r[1]);const c=/v-model="([^"]*)"/g;for(;(r=c.exec(o))!==null;)i.push(r[1]);if(i.length===0)return[];const h=i.join(`
|
|
16
|
+
`),p=[],m=new Set,g=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(r=g.exec(h))!==null;){const d=r[1];if(m.has(d)||t.has(d)||k.has(d)||J(d)||H(d))continue;const v=e.get(d);v&&(m.add(d),p.push(v))}return p}const W=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function J(s){return W.has(s.toLowerCase())}function V(s,e){if(!e.trim())return s;const t=s.match(/<script\s+setup[^>]*>/);if(!t)return s;const n=t.index+t[0].length;return s.slice(0,n)+`
|
|
17
17
|
`+e+`
|
|
18
|
-
`+s.slice(n)}function Z(s){return/<script[\s>]/.test(s)}function H(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}
|
|
19
|
-
`)}function
|
|
18
|
+
`+s.slice(n)}function Z(s){return/<script[\s>]/.test(s)}function H(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}const G=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","as","implements","interface","let","package","private","protected","public","static","yield","abstract","any","boolean","constructor","declare","get","infer","is","keyof","module","namespace","never","readonly","require","number","object","set","string","symbol","type","undefined","unique","unknown","from","of","async","await","global"]);function K(s){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const u of s)t.has(u.module)||t.set(u.module,[]),t.get(u.module).push(u);const n=new Set,o=new Map,i=[...t.entries()].reverse();for(const[u,r]of i){const a=[];for(const c of r)n.has(c.name)||(n.add(c.name),a.push(c));a.length>0&&o.set(u,a)}e.push("declare global {");for(const u of t.keys()){const r=o.get(u);if(r){e.push(` // from '${u}'`);for(const a of r)G.has(a.name)||(a.isDefault?e.push(` const ${a.name}: typeof import('${u}')['default']`):e.push(` const ${a.name}: typeof import('${u}')['${a.name}']`));e.push("")}}return e.push("}"),e.join(`
|
|
19
|
+
`)}function Q(s,e){F(s,e)}function X(s,e){return E(s,e)}class Y extends I{nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"src/auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/^(?!.*node_modules).*\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||e===!0||typeof e=="string","dts \u5FC5\u987B\u4E3A false\u3001true \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,n)=>!this.initialized||!this.options.fileFilter.test(n)?null:this.transformCode(t,n)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=this.viteConfig?.root||process.cwd(),t=C(this.options.imports,e),n=P(this.options.dirs,e),o=M(n);this.allResolvedImports=[...t,...o],this.nameLookup=B(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${n.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){const n=t.endsWith(".vue")&&Z(e);let o=N(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&n){const u=U(e,this.nameLookup,this.ignoreSet),r=new Set(o.map(a=>a.name));for(const a of u)r.has(a.name)||(r.add(a.name),o.push(a))}if(o=o.filter(u=>!O(e,u.name)),o.length===0)return null;const i=q(o);return{code:n?V(e,i):z(e,i,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=typeof this.options.dts=="string"?this.options.dts:"src/auto-imports.d.ts",n=l.isAbsolute(t)?t:l.resolve(e,t),o=K(this.allResolvedImports);X(n,o)&&this.safeExecuteSync(()=>{Q(n,o),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const tt=A(Y);export{tt as autoImport};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),g=require("node:zlib"),node_util=require("node:util"),common_fs_index=require("../../common/fs/index.cjs"),common_path_index=require("../../common/path/index.cjs"),common_format_index=require("../../common/format/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path");function _interopDefaultCompat(n){return n&&typeof n=="object"&&"default"in n?n.default:n}const u__default=_interopDefaultCompat(u),l__default=_interopDefaultCompat(l),g__default=_interopDefaultCompat(g),M=node_util.promisify(g__default.gzip);async function k(n){const i=Buffer.isBuffer(n)?n:Buffer.from(n,"utf-8");return(await M(i)).length}function p(n){return n.includes("node_modules")||n.startsWith("\0")||n.startsWith("virtual:")}async function scanOutputDirectory(n,i={}){return common_fs_index.scanDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns})}function analyzeFileTypeDistribution(n){const i=n.reduce((o,a)=>o+a.size,0),e=new Map;for(const o of n){const a=o.extension||"(no ext)",t=e.get(a)||{count:0,totalSize:0};t.count++,t.totalSize+=o.size,e.set(a,t)}return Array.from(e.entries()).map(([o,{count:a,totalSize:t}])=>({extension:o,count:a,totalSize:t,percentage:i>0?Number((t/i*100).toFixed(1)):0})).sort((o,a)=>a.totalSize-o.totalSize)}function checkSizeThresholds(n,i){const e=[],o=i*1024;for(const a of n){a.size>o&&e.push({level:"chunk",name:a.name,sizeKB:Number((a.size/1024).toFixed(1)),thresholdKB:i,message:`Chunk "${a.name}" \u8D85\u8FC7\u9608\u503C: ${(a.size/1024).toFixed(1)}KB > ${i}KB`});for(const t of a.modules)t.size>o&&e.push({level:"module",name:t.id,sizeKB:Number((t.size/1024).toFixed(1)),thresholdKB:i,message:`\u6A21\u5757 "${t.id}" \u8D85\u8FC7\u9608\u503C: ${(t.size/1024).toFixed(1)}KB > ${i}KB`})}return e}function getTopModules(n,i,e){const o=[];for(const a of n)for(const t of a.modules)e&&t.isNodeModule||o.push(t);return o.sort((a,t)=>t.size-a.size).slice(0,i)}async function buildChunkStats(n,i,e={}){const{gzipSize:o=!0,excludeNodeModules:a=!1}=e,t=[];for(const r of i){const d=l__default.relative(n,r.filePath),c=common_path_index.normalizePath(d),s=r.extension;let h="chunk";s===".html"?h="entry":[".js",".mjs",".cjs",".css",".html"].includes(s)||(h="asset");let m=0;if(o)try{const y=await u__default.promises.readFile(r.filePath);m=await k(y)}catch{m=0}const f=p(d),z={id:c,size:r.size,gzipSize:m,chunks:[c],imports:[],isEntry:h==="entry",isNodeModule:f};a&&f||t.push({name:c,size:r.size,gzipSize:m,modules:[z],type:h,fileCount:1})}return t.sort((r,d)=>d.size-r.size)}async function analyzeBundle(n,i){const e=Date.now(),o=await scanOutputDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns}),a=await buildChunkStats(n,o,{gzipSize:i.gzipSize,excludeNodeModules:i.excludeNodeModules}),t=i.excludeNodeModules?o.filter(f=>!p(l__default.relative(n,f.filePath))):o,r=analyzeFileTypeDistribution(t),d=getTopModules(a,i.topModules,i.excludeNodeModules),c=checkSizeThresholds(a,i.sizeThreshold),s=a.reduce((f,z)=>f+z.size,0),h=a.reduce((f,z)=>f+z.gzipSize,0),m=Date.now()-e;return{timestamp:new Date().toISOString(),totalSize:s,totalGzipSize:h,chunks:a,topModules:d,fileTypeDistribution:r,warnings:c,comparisonDiffs:[],analysisTime:m}}async function loadPreviousReport(n){try{const i=l__default.isAbsolute(n)?n:l__default.resolve(process.cwd(),n);if(!await u__default.promises.access(i,u__default.constants.F_OK).then(()=>!0).catch(()=>!1))return null;const e=await u__default.promises.readFile(i,"utf-8");return JSON.parse(e)}catch{return null}}function compareWithPrevious(n,i){const e=[],o=new Map;for(const t of i.chunks)o.set(t.name,t.size);const a=new Map;for(const t of n.chunks)a.set(t.name,t.size);for(const[t,r]of a){const d=o.get(t);if(d===void 0)e.push({name:t,previousSize:-1,currentSize:r,diff:r,diffPercentage:100,trend:"added"});else{const c=r-d,s=d>0?Number((c/d*100).toFixed(1)):0;e.push({name:t,previousSize:d,currentSize:r,diff:c,diffPercentage:s,trend:c>0?"increased":c<0?"decreased":"unchanged"})}}for(const[t,r]of o)a.has(t)||e.push({name:t,previousSize:r,currentSize:-1,diff:-r,diffPercentage:-100,trend:"removed"});return e.sort((t,r)=>Math.abs(r.diff)-Math.abs(t.diff))}async function generateJsonReport(n,i,e){const o=l__default.join(n,`${i}.json`),a={timestamp:e.timestamp,summary:{totalSize:e.totalSize,totalGzipSize:e.totalGzipSize,totalSizeFormatted:common_format_index.formatFileSize(e.totalSize),totalGzipSizeFormatted:common_format_index.formatFileSize(e.totalGzipSize),chunkCount:e.chunks.length,warningCount:e.warnings.length,analysisTime:e.analysisTime},chunks:e.chunks.map(t=>({name:t.name,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),type:t.type,fileCount:t.fileCount,modules:t.modules.map(r=>({id:r.id,size:r.size,sizeFormatted:common_format_index.formatFileSize(r.size),gzipSize:r.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(r.gzipSize),isEntry:r.isEntry,isNodeModule:r.isNodeModule,imports:r.imports}))})),topModules:e.topModules.map(t=>({id:t.id,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),isNodeModule:t.isNodeModule})),fileTypeDistribution:e.fileTypeDistribution,warnings:e.warnings,comparisonDiffs:e.comparisonDiffs};return await common_fs_index.writeJsonReport(o,a),o}async function generateHtmlReport(n,i,e,o={}){const a=l__default.join(n,`${i}.html`),t=o.defaultChartType||"treemap",r=e.chunks.map(f=>({name:f.name,size:f.size,gzipSize:f.gzipSize,type:f.type})),d=e.fileTypeDistribution,c=e.warnings,s=e.comparisonDiffs,h=e.topModules.slice(0,10),m=x(e,r,d,c,s,h,t);return await common_fs_index.writeFileContent(a,m),a}function x(n,i,e,o,a,t,r){const d=common_format_index.formatFileSize(n.totalSize),c=common_format_index.formatFileSize(n.totalGzipSize);return`<!DOCTYPE html>
|
|
1
|
+
"use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),g=require("node:zlib"),node_util=require("node:util"),common_fs_index=require("../../common/fs/index.cjs"),common_path_index=require("../../common/path/index.cjs"),common_format_index=require("../../common/format/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path"),require("../../common/concurrency/index.cjs");function _interopDefaultCompat(n){return n&&typeof n=="object"&&"default"in n?n.default:n}const u__default=_interopDefaultCompat(u),l__default=_interopDefaultCompat(l),g__default=_interopDefaultCompat(g),M=node_util.promisify(g__default.gzip);async function k(n){const i=Buffer.isBuffer(n)?n:Buffer.from(n,"utf-8");return(await M(i)).length}function p(n){return n.includes("node_modules")||n.startsWith("\0")||n.startsWith("virtual:")}async function scanOutputDirectory(n,i={}){return common_fs_index.scanDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns})}function analyzeFileTypeDistribution(n){const i=n.reduce((o,a)=>o+a.size,0),e=new Map;for(const o of n){const a=o.extension||"(no ext)",t=e.get(a)||{count:0,totalSize:0};t.count++,t.totalSize+=o.size,e.set(a,t)}return Array.from(e.entries()).map(([o,{count:a,totalSize:t}])=>({extension:o,count:a,totalSize:t,percentage:i>0?Number((t/i*100).toFixed(1)):0})).sort((o,a)=>a.totalSize-o.totalSize)}function checkSizeThresholds(n,i){const e=[],o=i*1024;for(const a of n){a.size>o&&e.push({level:"chunk",name:a.name,sizeKB:Number((a.size/1024).toFixed(1)),thresholdKB:i,message:`Chunk "${a.name}" \u8D85\u8FC7\u9608\u503C: ${(a.size/1024).toFixed(1)}KB > ${i}KB`});for(const t of a.modules)t.size>o&&e.push({level:"module",name:t.id,sizeKB:Number((t.size/1024).toFixed(1)),thresholdKB:i,message:`\u6A21\u5757 "${t.id}" \u8D85\u8FC7\u9608\u503C: ${(t.size/1024).toFixed(1)}KB > ${i}KB`})}return e}function getTopModules(n,i,e){const o=[];for(const a of n)for(const t of a.modules)e&&t.isNodeModule||o.push(t);return o.sort((a,t)=>t.size-a.size).slice(0,i)}async function buildChunkStats(n,i,e={}){const{gzipSize:o=!0,excludeNodeModules:a=!1}=e,t=[];for(const r of i){const d=l__default.relative(n,r.filePath),c=common_path_index.normalizePath(d),s=r.extension;let h="chunk";s===".html"?h="entry":[".js",".mjs",".cjs",".css",".html"].includes(s)||(h="asset");let m=0;if(o)try{const y=await u__default.promises.readFile(r.filePath);m=await k(y)}catch{m=0}const f=p(d),z={id:c,size:r.size,gzipSize:m,chunks:[c],imports:[],isEntry:h==="entry",isNodeModule:f};a&&f||t.push({name:c,size:r.size,gzipSize:m,modules:[z],type:h,fileCount:1})}return t.sort((r,d)=>d.size-r.size)}async function analyzeBundle(n,i){const e=Date.now(),o=await scanOutputDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns}),a=await buildChunkStats(n,o,{gzipSize:i.gzipSize,excludeNodeModules:i.excludeNodeModules}),t=i.excludeNodeModules?o.filter(f=>!p(l__default.relative(n,f.filePath))):o,r=analyzeFileTypeDistribution(t),d=getTopModules(a,i.topModules,i.excludeNodeModules),c=checkSizeThresholds(a,i.sizeThreshold),s=a.reduce((f,z)=>f+z.size,0),h=a.reduce((f,z)=>f+z.gzipSize,0),m=Date.now()-e;return{timestamp:new Date().toISOString(),totalSize:s,totalGzipSize:h,chunks:a,topModules:d,fileTypeDistribution:r,warnings:c,comparisonDiffs:[],analysisTime:m}}async function loadPreviousReport(n){try{const i=l__default.isAbsolute(n)?n:l__default.resolve(process.cwd(),n);if(!await u__default.promises.access(i,u__default.constants.F_OK).then(()=>!0).catch(()=>!1))return null;const e=await u__default.promises.readFile(i,"utf-8");return JSON.parse(e)}catch{return null}}function compareWithPrevious(n,i){const e=[],o=new Map;for(const t of i.chunks)o.set(t.name,t.size);const a=new Map;for(const t of n.chunks)a.set(t.name,t.size);for(const[t,r]of a){const d=o.get(t);if(d===void 0)e.push({name:t,previousSize:-1,currentSize:r,diff:r,diffPercentage:100,trend:"added"});else{const c=r-d,s=d>0?Number((c/d*100).toFixed(1)):0;e.push({name:t,previousSize:d,currentSize:r,diff:c,diffPercentage:s,trend:c>0?"increased":c<0?"decreased":"unchanged"})}}for(const[t,r]of o)a.has(t)||e.push({name:t,previousSize:r,currentSize:-1,diff:-r,diffPercentage:-100,trend:"removed"});return e.sort((t,r)=>Math.abs(r.diff)-Math.abs(t.diff))}async function generateJsonReport(n,i,e){const o=l__default.join(n,`${i}.json`),a={timestamp:e.timestamp,summary:{totalSize:e.totalSize,totalGzipSize:e.totalGzipSize,totalSizeFormatted:common_format_index.formatFileSize(e.totalSize),totalGzipSizeFormatted:common_format_index.formatFileSize(e.totalGzipSize),chunkCount:e.chunks.length,warningCount:e.warnings.length,analysisTime:e.analysisTime},chunks:e.chunks.map(t=>({name:t.name,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),type:t.type,fileCount:t.fileCount,modules:t.modules.map(r=>({id:r.id,size:r.size,sizeFormatted:common_format_index.formatFileSize(r.size),gzipSize:r.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(r.gzipSize),isEntry:r.isEntry,isNodeModule:r.isNodeModule,imports:r.imports}))})),topModules:e.topModules.map(t=>({id:t.id,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),isNodeModule:t.isNodeModule})),fileTypeDistribution:e.fileTypeDistribution,warnings:e.warnings,comparisonDiffs:e.comparisonDiffs};return await common_fs_index.writeJsonReport(o,a),o}async function generateHtmlReport(n,i,e,o={}){const a=l__default.join(n,`${i}.html`),t=o.defaultChartType||"treemap",r=e.chunks.map(f=>({name:f.name,size:f.size,gzipSize:f.gzipSize,type:f.type})),d=e.fileTypeDistribution,c=e.warnings,s=e.comparisonDiffs,h=e.topModules.slice(0,10),m=x(e,r,d,c,s,h,t);return await common_fs_index.writeFileContent(a,m),a}function x(n,i,e,o,a,t,r){const d=common_format_index.formatFileSize(n.totalSize),c=common_format_index.formatFileSize(n.totalGzipSize);return`<!DOCTYPE html>
|
|
2
2
|
<html lang="zh-CN">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|