2025/2/8第一次更新

This commit is contained in:
爱吃咸鱼小猫咪
2025-02-08 18:50:38 +08:00
commit d7af560866
26519 changed files with 5046029 additions and 0 deletions
@@ -0,0 +1,8 @@
import type { ResolvedConfig } from 'vite';
import type { FilterPattern } from '@rollup/pluginutils';
import type { VitePluginUniResolvedOptions } from '../..';
export interface UniPluginFilterOptions extends VitePluginUniResolvedOptions {
include?: FilterPattern;
exclude?: FilterPattern;
}
export declare function initPlugins(config: ResolvedConfig, options: VitePluginUniResolvedOptions): void;
@@ -0,0 +1,50 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.initPlugins = void 0;
// import debug from 'debug'
const shared_1 = require("@vue/shared");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const json_1 = require("./json");
const preCss_1 = require("./preCss");
const static_1 = require("./static");
const preVue_1 = require("./preVue");
const ssr_1 = require("./ssr");
const resolveId_1 = require("./resolveId");
const UNI_H5_RE = /@dcloudio\/uni-h5/;
function initPlugins(config, options) {
const uniPrePluginOptions = {
exclude: [...uni_cli_shared_1.COMMON_EXCLUDE, UNI_H5_RE],
};
const uniPreCssPluginOptions = {
exclude: [...uni_cli_shared_1.COMMON_EXCLUDE],
};
const plugins = config.plugins;
addPlugin(plugins, (0, resolveId_1.uniResolveIdPlugin)(options), 'vite:resolve', 'pre');
addPlugin(plugins, (0, uni_cli_shared_1.uniPrePlugin)(config, (0, shared_1.extend)(uniPrePluginOptions, options)), 0, 'pre');
addPlugin(plugins, (0, preCss_1.uniPreCssPlugin)(config, (0, shared_1.extend)(uniPreCssPluginOptions, options)), 'vite:css');
addPlugin(plugins, (0, preVue_1.uniPreVuePlugin)(), 'vite:vue', 'pre');
addPlugin(plugins, (0, ssr_1.uniSSRPlugin)(config, (0, shared_1.extend)({ exclude: [...uni_cli_shared_1.COMMON_EXCLUDE, /\/@dcloudio\/uni-app/] }, options)), process.env.UNI_APP_X === 'true' ? 'uts' : 'vite:vue');
addPlugin(plugins, (0, json_1.uniJsonPlugin)(options), 'vite:json', 'pre');
addPlugin(plugins, (0, static_1.uniStaticPlugin)(options, config), 'vite:asset', 'pre');
if (process.env.UNI_HBUILDERX_PLUGINS && (0, uni_cli_shared_1.isNormalCompileTarget)()) {
try {
const { V } = (0, uni_cli_shared_1.requireUniHelpers)();
addPlugin(plugins, V({
dir: process.env.UNI_INPUT_DIR,
cacheDir: process.env.UNI_MODULES_ENCRYPT_CACHE_DIR,
}), 0, 'pre');
}
catch (e) { }
}
// if (process.env.DEBUG) {
// debugPlugin(plugins.length)
// debugPlugin(plugins.map((p) => (p as Plugin).name))
// }
}
exports.initPlugins = initPlugins;
function addPlugin(plugins, plugin, index, type = 'post') {
if ((0, shared_1.isString)(index)) {
index = plugins.findIndex((plugin) => plugin.name === index);
}
return plugins.splice(index + (type === 'pre' ? 0 : 1), 0, plugin);
}
@@ -0,0 +1,3 @@
import type { Plugin } from 'vite';
import type { VitePluginUniResolvedOptions } from '../..';
export declare function uniJsonPlugin(options: VitePluginUniResolvedOptions): Plugin;
@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniJsonPlugin = void 0;
const jsonc_parser_1 = require("jsonc-parser");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const jsonExtRE = /\.json($|\?)(?!commonjs-proxy)/;
const SPECIAL_QUERY_RE = /[\?&](?:worker|sharedworker|raw|url)\b/;
function uniJsonPlugin(options) {
return {
name: 'uni:json',
transform(code, id) {
if (!jsonExtRE.test(id))
return null;
if (SPECIAL_QUERY_RE.test(id))
return null;
if (id.endsWith('.json.js'))
return null;
// preprocess
if (code.includes('#endif')) {
code = (0, uni_cli_shared_1.preJs)(code);
}
let jsonObj = (0, jsonc_parser_1.parse)(code);
if ((0, uni_cli_shared_1.isUniAppLocaleFile)(id)) {
jsonObj = jsonObj.common || {};
}
return {
code: JSON.stringify(jsonObj),
map: null,
};
},
};
}
exports.uniJsonPlugin = uniJsonPlugin;
@@ -0,0 +1,7 @@
import type { Plugin, ResolvedConfig } from 'vite';
import type { UniPluginFilterOptions } from '.';
/**
* preprocess css
* @param options
*/
export declare function uniPreCssPlugin(config: ResolvedConfig, options: UniPluginFilterOptions): Plugin;
@@ -0,0 +1,43 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniPreCssPlugin = void 0;
const debug_1 = __importDefault(require("debug"));
const pluginutils_1 = require("@rollup/pluginutils");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const debugPre = (0, debug_1.default)('uni:pre-css');
// const debugPreTry = debug('uni:pre-css-try')
const cssLangs = `\\.(css|less|sass|scss|styl|stylus|postcss)($|\\?)`;
const cssLangRE = new RegExp(cssLangs);
/**
* preprocess css
* @param options
*/
function uniPreCssPlugin(config, options) {
const filter = (0, pluginutils_1.createFilter)(options.include, options.exclude);
const isNVue = config.nvue;
const preJsFile = isNVue ? uni_cli_shared_1.preNVueJs : uni_cli_shared_1.preJs;
return {
name: 'uni:pre-css',
transform(code, id) {
if (!cssLangRE.test(id)) {
return;
}
if (!filter(id)) {
return;
}
// debugPreTry(id)
if (!code.includes('#endif')) {
return;
}
debugPre(id);
return {
code: preJsFile(code),
map: (0, uni_cli_shared_1.withSourcemap)(config) ? this.getCombinedSourcemap() : null,
};
},
};
}
exports.uniPreCssPlugin = uniPreCssPlugin;
@@ -0,0 +1,2 @@
import type { Plugin } from 'vite';
export declare function uniPreVuePlugin(): Plugin;
@@ -0,0 +1,33 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniPreVuePlugin = void 0;
const path_1 = __importDefault(require("path"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
function uniPreVuePlugin() {
let isNVue = false;
return {
name: 'uni:pre-vue',
config(config) {
isNVue = config.nvue;
},
async transform(code, id) {
const { filename, query } = (0, uni_cli_shared_1.parseVueRequest)(id);
if (query.vue) {
return;
}
if (!(process.env.UNI_APP_X === 'true' ? uni_cli_shared_1.X_EXTNAME_VUE : uni_cli_shared_1.EXTNAME_VUE).includes(path_1.default.extname(filename))) {
return;
}
// 清空当前页面已缓存的 filter 信息
(0, uni_cli_shared_1.clearMiniProgramTemplateFilter)((0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizeMiniProgramFilename)(id, process.env.UNI_INPUT_DIR)));
return {
code: (0, uni_cli_shared_1.parseVueCode)(code, isNVue).code, // 暂不提供sourcemap,意义不大
map: null,
};
},
};
}
exports.uniPreVuePlugin = uniPreVuePlugin;
@@ -0,0 +1,17 @@
import type { Plugin } from 'vite';
import type { VitePluginUniResolvedOptions } from '../..';
declare const BUILT_IN_MODULES: {
'vue-router': string;
vuex: string;
'vue-i18n': string;
'@dcloudio/uni-app': string;
'@dcloudio/uni-cloud': string;
'@dcloudio/uni-i18n': string;
'@dcloudio/uni-shared': string;
'@dcloudio/uni-stacktracey': string;
'@vue/shared': string;
pinia: string;
};
export type BuiltInModulesKey = keyof typeof BUILT_IN_MODULES;
export declare function uniResolveIdPlugin(options: VitePluginUniResolvedOptions): Plugin;
export {};
@@ -0,0 +1,41 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniResolveIdPlugin = void 0;
const path_1 = __importDefault(require("path"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
// const debugResolve = debug('uni:resolve-id')
const BUILT_IN_MODULES = {
'vue-router': 'dist/vue-router.esm-bundler.js',
vuex: 'dist/vuex.esm-bundler.js',
'vue-i18n': 'dist/vue-i18n.esm-bundler.js',
'@dcloudio/uni-app': 'dist/uni-app.es.js',
'@dcloudio/uni-cloud': 'dist/uni-cloud.es.js',
'@dcloudio/uni-i18n': 'dist/uni-i18n.es.js',
'@dcloudio/uni-shared': 'dist/uni-shared.es.js',
'@dcloudio/uni-stacktracey': 'dist/uni-stacktracey.es.js',
'@vue/shared': 'dist/shared.esm-bundler.js',
pinia: 'dist/pinia.mjs',
};
function uniResolveIdPlugin(options) {
const resolveCache = {};
return {
name: 'uni:resolve-id',
resolveId(id, importer) {
const cache = resolveCache[id];
if (cache) {
// debugResolve('cache', id, cache)
return cache;
}
if (BUILT_IN_MODULES[id]) {
return (resolveCache[id] = (0, uni_cli_shared_1.resolveBuiltIn)(path_1.default.join(id, BUILT_IN_MODULES[id])));
}
if (process.env.UNI_PLATFORM !== 'app') {
return (0, uni_cli_shared_1.resolveUTSModule)(id, importer ? path_1.default.dirname(importer) : process.env.UNI_INPUT_DIR);
}
},
};
}
exports.uniResolveIdPlugin = uniResolveIdPlugin;
@@ -0,0 +1,3 @@
import type { Plugin, ResolvedConfig } from 'vite';
import type { UniPluginFilterOptions } from '.';
export declare function uniSSRPlugin(config: ResolvedConfig, options: UniPluginFilterOptions): Plugin;
@@ -0,0 +1,63 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniSSRPlugin = void 0;
const debug_1 = __importDefault(require("debug"));
const crypto_1 = __importDefault(require("crypto"));
const estree_walker_1 = require("estree-walker");
const pluginutils_1 = require("@rollup/pluginutils");
const magic_string_1 = __importDefault(require("magic-string"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const debugSSR = (0, debug_1.default)('uni:ssr');
const KEYED_FUNC_RE = /(ssrRef|shallowSsrRef)/;
function uniSSRPlugin(config, options) {
const filter = (0, pluginutils_1.createFilter)(options.include, options.exclude);
return {
name: 'uni:ssr:ref',
transform(code, id) {
if (!filter(id))
return null;
if (!KEYED_FUNC_RE.test(code)) {
return;
}
debugSSR('try', id);
const ast = this.parse(code);
const s = new magic_string_1.default(code);
(0, estree_walker_1.walk)(ast, {
enter(node) {
if (!(0, uni_cli_shared_1.isCallExpression)(node)) {
return;
}
const { callee, arguments: args } = node;
if (args.length !== 1) {
return;
}
const name = (0, uni_cli_shared_1.isIdentifier)(callee)
? callee.name
: (0, uni_cli_shared_1.isMemberExpression)(callee) && (0, uni_cli_shared_1.isIdentifier)(callee.property)
? callee.property.name
: '';
if (name !== 'ssrRef' && name !== 'shallowSsrRef') {
return;
}
const { end } = node;
const key = id + '-' + node.end;
debugSSR(key, name);
s.appendLeft(end - 1, ", '" + createKey(`${id}-${end}`) + "'");
},
});
return {
code: s.toString(),
map: (0, uni_cli_shared_1.withSourcemap)(config) ? s.generateMap().toString() : null,
};
},
};
}
exports.uniSSRPlugin = uniSSRPlugin;
function createKey(source) {
const hash = crypto_1.default.createHash('md5');
hash.update(source);
return hash.digest('base64').toString();
}
@@ -0,0 +1,9 @@
import type { Plugin, ResolvedConfig } from 'vite';
import type { UniPluginFilterOptions } from '.';
/**
* 提供static等目录静态资源加载
* @param _options
* @param config
* @returns
*/
export declare function uniStaticPlugin(_options: UniPluginFilterOptions, config: ResolvedConfig): Plugin;
@@ -0,0 +1,44 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniStaticPlugin = void 0;
const debug_1 = __importDefault(require("debug"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const utils_1 = require("../../utils");
const debugStatic = (0, debug_1.default)('uni:static');
/**
* 提供static等目录静态资源加载
* @param _options
* @param config
* @returns
*/
function uniStaticPlugin(_options, config) {
const filter = (0, utils_1.createPublicFileFilter)();
return {
name: 'uni:static',
resolveId(id) {
if (!config.assetsInclude((0, uni_cli_shared_1.cleanUrl)(id))) {
return;
}
const publicFile = filter(id);
if (publicFile) {
debugStatic(id);
return id;
}
},
async load(id) {
if (!config.assetsInclude((0, uni_cli_shared_1.cleanUrl)(id))) {
return;
}
if (filter(id)) {
return `export default ${JSON.stringify(fileToUrl(id, config))}`;
}
},
};
}
exports.uniStaticPlugin = uniStaticPlugin;
function fileToUrl(id, config) {
return config.base + id.slice(1);
}