| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.initExtraPlugins = exports.initPluginUniOptions = void 0;
- const path_1 = __importDefault(require("path"));
- const shared_1 = require("@vue/shared");
- const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
- function initPluginUniOptions(UniVitePlugins) {
- const assets = [];
- const targets = [];
- const transformEvent = Object.create(null);
- const compilerOptions = {};
- const jsxOptions = {};
- const styleOptions = {};
- let compiler;
- UniVitePlugins.forEach((plugin) => {
- const { compiler: pluginTemplateCompiler, copyOptions: pluginCopyOptions, compilerOptions: pluginCompilerOptions, jsxOptions: pluginJsxOptions, styleOptions: pluginStyleOpitons, } = plugin.uni || {};
- if (pluginTemplateCompiler) {
- compiler = pluginTemplateCompiler;
- }
- if (pluginCompilerOptions) {
- (0, shared_1.extend)(compilerOptions, pluginCompilerOptions);
- }
- if (pluginJsxOptions) {
- (0, shared_1.extend)(jsxOptions, pluginJsxOptions);
- }
- if (pluginStyleOpitons) {
- (0, shared_1.extend)(styleOptions, pluginStyleOpitons);
- }
- if (pluginCopyOptions) {
- let copyOptions = pluginCopyOptions;
- if ((0, shared_1.isFunction)(pluginCopyOptions)) {
- copyOptions = pluginCopyOptions();
- }
- if (copyOptions.assets) {
- assets.push(...copyOptions.assets);
- }
- if (copyOptions.targets) {
- targets.push(...copyOptions.targets);
- }
- }
- });
- return {
- compiler,
- copyOptions: {
- assets,
- targets,
- },
- transformEvent,
- compilerOptions,
- jsxOptions,
- styleOptions,
- };
- }
- exports.initPluginUniOptions = initPluginUniOptions;
- function initExtraPlugins(cliRoot, platform, options) {
- return initPlugins(cliRoot, resolvePlugins(cliRoot, platform, options.uvue), options);
- }
- exports.initExtraPlugins = initExtraPlugins;
- function initPlugin(cliRoot, { id, config: { main } }, options) {
- let plugin = require(require.resolve(path_1.default.join(id, main || '/lib/uni.plugin.js'), { paths: [cliRoot] }));
- plugin = plugin.default || plugin;
- if ((0, shared_1.isFunction)(plugin)) {
- plugin = plugin(options);
- }
- return plugin;
- }
- function initPlugins(cliRoot, plugins, options) {
- return plugins
- .map((plugin) => initPlugin(cliRoot, plugin, options))
- .flat()
- .filter(Boolean)
- .map((plugin) => {
- if ((0, shared_1.isFunction)(plugin)) {
- return plugin(options);
- }
- return plugin;
- })
- .flat();
- }
- function resolvePlugins(cliRoot, platform, uvue = false) {
- const pkg = require(path_1.default.join(cliRoot, 'package.json'));
- return Object.keys(pkg.devDependencies || {})
- .concat(Object.keys(pkg.dependencies || {}))
- .map((id) => {
- try {
- const pluginPkg = require(require.resolve(id + '/package.json', {
- paths: [cliRoot],
- }));
- const config = pluginPkg['uni-app'];
- if (!config || !config.name) {
- return;
- }
- const { apply } = config;
- if ((0, shared_1.isArray)(apply)) {
- // 注册所有平台
- apply.forEach((p) => (0, uni_cli_shared_1.registerPlatform)(p));
- if (!apply.includes(platform)) {
- return;
- }
- }
- else if ((0, shared_1.isString)(apply)) {
- if (!new RegExp(apply).test(platform)) {
- return;
- }
- }
- // 插件必须支持 uvue
- if (uvue && !config.uvue) {
- return;
- }
- return {
- id,
- name: config.name,
- config,
- };
- }
- catch (e) { }
- })
- .filter(Boolean);
- }
|