module.exports = (function() { var __MODS__ = {}; var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; __DEFINE__(1745998156426, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const vue_1 = require("./vue"); const nvue_1 = require("./nvue"); const plugin_1 = require("./plugin"); exports.default = () => { return [ (0, plugin_1.uniAppPlugin)({ renderer: process.env.UNI_RENDERER, appService: process.env.UNI_RENDERER_NATIVE === 'appService', }), (0, uni_cli_shared_1.uniUTSPlugin)({ x: false, extApis: (0, uni_cli_shared_1.parseUniExtApiNamespacesOnce)(process.env.UNI_UTS_PLATFORM, process.env.UNI_UTS_TARGET_LANGUAGE), }), ...(process.env.UNI_COMPILER === 'nvue' ? (0, nvue_1.initNVuePlugins)() : (0, vue_1.initVuePlugins)()), ]; }; }, function(modId) {var map = {"./vue":1745998156427,"./nvue":1745998156442,"./plugin":1745998156456}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156427, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.initVuePlugins = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const template_1 = require("../plugins/template"); const manifestJson_1 = require("../plugins/manifestJson"); const stats_1 = require("../plugins/stats"); const easycom_1 = require("../plugins/easycom"); const confusion_1 = require("./plugins/confusion"); const mainJs_1 = require("./plugins/mainJs"); const pagesJson_1 = require("./plugins/pagesJson"); const renderjs_1 = require("./plugins/renderjs"); const plugin_1 = require("./plugin"); function initUniCssScopedPluginFilter(inputDir) { const styleIsolation = (0, uni_cli_shared_1.getAppStyleIsolation)((0, uni_cli_shared_1.parseManifestJsonOnce)(inputDir)); if (styleIsolation === 'shared') { return; } if (styleIsolation === 'isolated') { // isolated: 对所有非 App.vue 增加 scoped return (id) => (0, uni_cli_shared_1.isVueSfcFile)(id) && !id.endsWith('App.vue'); } // apply-shared: 仅对非页面组件增加 scoped return (id) => (0, uni_cli_shared_1.isVueSfcFile)(id) && !id.endsWith('App.vue') && !(0, uni_cli_shared_1.isUniPageFile)(id, inputDir); } function initVuePlugins() { const plugins = [ (0, easycom_1.uniEasycomPlugin)({ exclude: uni_cli_shared_1.UNI_EASYCOM_EXCLUDE }), (0, uni_cli_shared_1.uniHBuilderXConsolePlugin)(), (0, mainJs_1.uniMainJsPlugin)(), (0, manifestJson_1.uniManifestJsonPlugin)(), (0, pagesJson_1.uniPagesJsonPlugin)(), (0, uni_cli_shared_1.uniViteInjectPlugin)('uni:app-inject', (0, uni_cli_shared_1.initAppProvide)()), (0, renderjs_1.uniRenderjsPlugin)(), (0, template_1.uniTemplatePlugin)(), (0, stats_1.uniStatsPlugin)(), (0, plugin_1.uniAppVuePlugin)(), (0, confusion_1.uniConfusionPlugin)(), ]; const filter = initUniCssScopedPluginFilter(process.env.UNI_INPUT_DIR); if (filter) { plugins.unshift((0, uni_cli_shared_1.uniCssScopedPlugin)({ filter })); } return plugins; } exports.initVuePlugins = initVuePlugins; }, function(modId) { var map = {"../plugins/template":1745998156428,"../plugins/manifestJson":1745998156430,"../plugins/stats":1745998156431,"../plugins/easycom":1745998156432,"./plugins/confusion":1745998156433,"./plugins/mainJs":1745998156434,"./plugins/pagesJson":1745998156435,"./plugins/renderjs":1745998156439,"./plugin":1745998156440}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156428, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniTemplatePlugin = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const utils_1 = require("../utils"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniTemplatePlugin({ renderer, } = {}) { let outputDir; return { name: 'uni:app-template', enforce: 'post', configResolved() { outputDir = process.env.UNI_OUTPUT_DIR; if (renderer !== 'native') { fs_extra_1.default.copySync((0, uni_cli_shared_1.resolveBuiltIn)('@dcloudio/uni-app-plus/dist/uni-app-view.umd.js'), path_1.default.resolve(outputDir, 'uni-app-view.umd.js'), { overwrite: true, }); } fs_extra_1.default.copySync(utils_1.templateDir, outputDir, { overwrite: true, filter(src) { if (renderer === 'native') { if (src.includes('__uniappquill') || src.includes('__uniappautomator')) { return false; } } return !src.includes('__uniappview.html'); }, }); }, }; } exports.uniTemplatePlugin = uniTemplatePlugin; }, function(modId) { var map = {"../utils":1745998156429}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156429, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.nvueOutDir = exports.templateDir = void 0; const path_1 = __importDefault(require("path")); exports.templateDir = path_1.default.resolve(__dirname, '../lib/template/'); function nvueOutDir() { return path_1.default.join(process.env.UNI_OUTPUT_DIR, '../.nvue'); } exports.nvueOutDir = nvueOutDir; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156430, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniManifestJsonPlugin = void 0; const path_1 = __importDefault(require("path")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniManifestJsonPlugin() { return (0, uni_cli_shared_1.defineUniManifestJsonPlugin)((opts) => { const inputDir = process.env.UNI_INPUT_DIR; return { name: 'uni:app-manifest-json', enforce: 'pre', transform(code, id) { if (!opts.filter(id)) { return; } this.addWatchFile(path_1.default.resolve(inputDir, 'manifest.json')); (0, uni_cli_shared_1.getLocaleFiles)(path_1.default.resolve(inputDir, 'locale')).forEach((filepath) => { this.addWatchFile(filepath); }); const manifestJson = (0, uni_cli_shared_1.normalizeAppManifestJson)((0, uni_cli_shared_1.parseJson)(code), (0, uni_cli_shared_1.parsePagesJsonOnce)(inputDir, process.env.UNI_PLATFORM)); // 生成一个空的 app-config.js,兼容基座已有规范 this.emitFile({ fileName: uni_cli_shared_1.APP_CONFIG, type: 'asset', source: '(function(){})();', }); this.emitFile({ fileName: `manifest.json`, type: 'asset', source: JSON.stringify(manifestJson, null, 2), }); return { code: '', map: null, }; }, }; }); } exports.uniManifestJsonPlugin = uniManifestJsonPlugin; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156431, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.uniStatsPlugin = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const emittedHashMap = new WeakMap(); function uniStatsPlugin() { let resolvedConfig; return { name: 'uni:app-stats', enforce: 'post', configResolved(config) { resolvedConfig = config; emittedHashMap.set(resolvedConfig, new Map()); }, writeBundle(_, bundle) { if (resolvedConfig.isProduction) { // 仅dev生效 return; } const emittedHash = emittedHashMap.get(resolvedConfig); const changedFiles = []; Object.keys(bundle).forEach((filename) => { const outputFile = bundle[filename]; let outputFileHash = ''; if (outputFile.type === 'asset') { outputFileHash = (0, uni_cli_shared_1.hash)(outputFile.source); } else { outputFileHash = (0, uni_cli_shared_1.hash)(outputFile.code); } if (emittedHash.get(filename) !== outputFileHash) { emittedHash.set(filename, outputFileHash); changedFiles.push(filename); } }); process.env.UNI_APP_CHANGED_FILES = changedFiles.length ? JSON.stringify(changedFiles) : ''; }, }; } exports.uniStatsPlugin = uniStatsPlugin; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156432, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniEasycomPlugin = void 0; const path_1 = __importDefault(require("path")); const shared_1 = require("@vue/shared"); const pluginutils_1 = require("@rollup/pluginutils"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniEasycomPlugin(options) { const filter = (0, pluginutils_1.createFilter)(options.include, options.exclude); return { name: 'uni:app-easycom', transform(code, id) { if (!filter(id)) { return; } const { filename } = (0, uni_cli_shared_1.parseVueRequest)(id); if (!uni_cli_shared_1.EXTNAME_VUE_TEMPLATE.includes(path_1.default.extname(filename))) { return; } if (!code.includes('_resolveComponent')) { return; } let i = 0; const importDeclarations = []; code = code.replace(/_resolveComponent\("(.+?)"(, true)?\)/g, (str, name) => { if (name && !name.startsWith('_')) { const source = (0, uni_cli_shared_1.matchEasycom)(name); if (source) { // 处理easycom组件优先级 return (0, uni_cli_shared_1.genResolveEasycomCode)(importDeclarations, str, (0, uni_cli_shared_1.addImportDeclaration)(importDeclarations, `__easycom_${i++}`, source, source.includes('uts-proxy') ? (0, shared_1.capitalize)((0, shared_1.camelize)(name)) + 'Component' : '')); } } return str; }); if (importDeclarations.length) { code = importDeclarations.join('') + code; } return { code, map: null, }; }, }; } exports.uniEasycomPlugin = uniEasycomPlugin; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156433, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniConfusionPlugin = void 0; const path_1 = __importDefault(require("path")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniConfusionPlugin() { const inputDir = process.env.UNI_INPUT_DIR; const hasConfusion = process.env.NODE_ENV === 'production' && (0, uni_cli_shared_1.hasConfusionFile)(inputDir); return { name: 'uni:app-vue-confusion', enforce: 'post', apply: 'build', config() { if (!hasConfusion) { return; } return { build: { rollupOptions: { output: { format: process.env.UNI_APP_CODE_SPLITING ? 'amd' : 'cjs', manualChunks(id) { if ((0, uni_cli_shared_1.isConfusionFile)(path_1.default.relative(inputDir, id))) { return (0, uni_cli_shared_1.removeExt)(uni_cli_shared_1.APP_CONFUSION_FILENAME); } }, }, }, }, }; }, generateBundle(_, bundle) { if (!hasConfusion) { return; } const appConfusionChunk = bundle[uni_cli_shared_1.APP_CONFUSION_FILENAME]; if (!appConfusionChunk) { return; } appConfusionChunk.code = wrapperAppConfusionCode(appConfusionChunk.code); const appServiceChunk = bundle[uni_cli_shared_1.APP_SERVICE_FILENAME]; if (!appServiceChunk) { return; } appServiceChunk.code = wrapperAppServiceCode(appServiceChunk.code); }, }; } exports.uniConfusionPlugin = uniConfusionPlugin; function replaceRequireVueCode(code) { return code.replace(/require\(['"]vue['"]\)/gi, `$cjs_require$('vue')`); } function replaceRequireAppConfusionCode(code) { return code.replace(new RegExp(`require\\(['"].\\/${uni_cli_shared_1.APP_CONFUSION_FILENAME}['"]\\)`, 'gi'), `$cjs_require$('./${uni_cli_shared_1.APP_CONFUSION_FILENAME}')`); } function wrapperAppServiceCode(code) { return replaceRequireAppConfusionCode(replaceRequireVueCode(code)); } function wrapperAppConfusionCode(code) { return `function $cjs_require$(name){if(name==='vue'){return Vue;}if(name==='./${uni_cli_shared_1.APP_CONFUSION_FILENAME}'){return $appConfusion$;}};const $appConfusion$ = {};(function(exports){${replaceRequireVueCode(code)}})($appConfusion$); `; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156434, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.uniMainJsPlugin = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniMainJsPlugin() { return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => { return { name: 'uni:app-vue-main-js', enforce: 'pre', transform(code, id) { if (opts.filter(id)) { code = code.includes('createSSRApp') ? createApp(code) : createLegacyApp(code); return { code: `import './${uni_cli_shared_1.PAGES_JSON_JS}';` + code, map: { mappings: '' }, }; } }, }; }); } exports.uniMainJsPlugin = uniMainJsPlugin; function createApp(code) { return `${code.replace('createSSRApp', 'createVueApp as createSSRApp')};const {app:__app__,Vuex:__Vuex__,Pinia:__Pinia__}=createApp();uni.Vuex=__Vuex__;uni.Pinia=__Pinia__;__app__.provide('__globalStyles', __uniConfig.styles);__app__._component.mpType='app';__app__._component.render=()=>{};__app__.mount("#app");`; } function createLegacyApp(code) { return `function createApp(rootComponent,rootProps){rootComponent.mpTye='app';rootComponent.render=()=>{};const app=createVueApp(rootComponent,rootProps);app.provide('__globalStyles', __uniConfig.styles);const oldMount=app.mount;app.mount=(container)=>{const appVm=oldMount.call(app,container);return appVm;};return app;};${code.replace('createApp', 'createVueApp')}`; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156435, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniPagesJsonPlugin = void 0; const path_1 = __importDefault(require("path")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const esbuild_1 = require("../../nvue/plugins/esbuild"); function uniPagesJsonPlugin() { return (0, uni_cli_shared_1.defineUniPagesJsonPlugin)((opts) => { return { name: 'uni:app-vue-pages-json', enforce: 'pre', transform(code, id) { if (!opts.filter(id)) { return; } this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'pages.json')); (0, uni_cli_shared_1.getLocaleFiles)(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'locale')).forEach((filepath) => { this.addWatchFile(filepath); }); const pagesJson = (0, uni_cli_shared_1.normalizePagesJson)(code, process.env.UNI_PLATFORM); pagesJson.pages.forEach((page) => { if (!page.style.isNVue) { this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, page.path + '.vue')); } }); this.emitFile({ fileName: uni_cli_shared_1.APP_CONFIG_SERVICE, type: 'asset', source: (0, uni_cli_shared_1.normalizeAppConfigService)(pagesJson, (0, uni_cli_shared_1.parseManifestJsonOnce)(process.env.UNI_INPUT_DIR)), }); return { code: `import './${uni_cli_shared_1.MANIFEST_JSON_JS}'\n` + (0, uni_cli_shared_1.normalizeAppPagesJson)(pagesJson), map: { mappings: '' }, }; }, generateBundle(_, bundle) { const outputFile = bundle[uni_cli_shared_1.APP_CONFIG_SERVICE]; if (outputFile && outputFile.type === 'asset') { // 补充 nvue styles ; outputFile.source = (0, esbuild_1.wrapperNVueAppStyles)(outputFile.source); } }, }; }); } exports.uniPagesJsonPlugin = uniPagesJsonPlugin; }, function(modId) { var map = {"../../nvue/plugins/esbuild":1745998156436}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156436, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapperNVueAppStyles = exports.uniEsbuildPlugin = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const debug_1 = __importDefault(require("debug")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const utils_1 = require("../../utils"); const utils_2 = require("../utils"); const appCss_1 = require("./appCss"); const debugEsbuild = (0, debug_1.default)('uni:app-nvue-esbuild'); const emittedHashMap = new WeakMap(); function uniEsbuildPlugin({ appService, }) { let resolvedConfig; let buildOptions; const nvueOutputDir = (0, utils_1.nvueOutDir)(); const outputDir = process.env.UNI_OUTPUT_DIR; let isFirst = true; return { name: 'uni:app-nvue-esbuild', enforce: 'post', configResolved(config) { buildOptions = { format: 'iife', target: 'es6', minify: config.build.minify ? true : false, banner: { js: `"use weex:vue"; ${uni_cli_shared_1.polyfillCode}`, }, bundle: true, write: false, plugins: [esbuildGlobalPlugin((0, utils_2.esbuildGlobals)(appService))], }; resolvedConfig = config; emittedHashMap.set(resolvedConfig, new Map()); }, async writeBundle(_, bundle) { const entryPoints = []; const assets = []; Object.keys(bundle).forEach((name) => { const chunk = bundle[name]; if (chunk.type === 'chunk' && chunk.facadeModuleId && chunk.facadeModuleId.endsWith('.nvue')) { entryPoints.push(name); } else if (chunk.type === 'asset') { assets.push(name); } }); // 仅 nvueOutputDir 时 copy if (!appService) { assets.forEach((name) => { fs_extra_1.default.copySync(path_1.default.resolve(nvueOutputDir, name), path_1.default.resolve(outputDir, name), { overwrite: false }); }); } if (!entryPoints.length) { return; } const emittedHash = emittedHashMap.get(resolvedConfig); const changedFiles = []; if (buildAppCss()) { changedFiles.push(uni_cli_shared_1.APP_CONFIG_SERVICE); } debugEsbuild('start', entryPoints.length, entryPoints); for (const filename of entryPoints) { await buildNVuePage(filename, buildOptions).then((code) => { const outputFileHash = (0, uni_cli_shared_1.hash)(code); if (emittedHash.get(filename) !== outputFileHash) { changedFiles.push(filename); emittedHash.set(filename, outputFileHash); return fs_extra_1.default.outputFile(path_1.default.resolve(outputDir, filename), code); } }); } if (!isFirst && changedFiles.length) { process.env[changedFiles.includes(uni_cli_shared_1.APP_CONFIG_SERVICE) ? 'UNI_APP_CHANGED_FILES' : 'UNI_APP_CHANGED_PAGES'] = JSON.stringify(changedFiles); } debugEsbuild('end'); isFirst = false; }, }; } exports.uniEsbuildPlugin = uniEsbuildPlugin; /** * 将 nvue 全局 css 样式注入 app-config-service.js * @returns */ function buildAppCss() { const appCssJsFilename = path_1.default.join((0, utils_1.nvueOutDir)(), appCss_1.APP_CSS_JS); if (!fs_extra_1.default.existsSync(appCssJsFilename)) { return; } const appCssJsCode = fs_extra_1.default.readFileSync(appCssJsFilename, 'utf8'); const appCssJsFn = new Function('module', appCssJsCode.replace(`export default`, `module.exports=`)); const module = { exports: { styles: [] } }; appCssJsFn(module); const appCssJsonCode = JSON.stringify(module.exports.styles); if (process.env.UNI_NVUE_APP_STYLES === appCssJsonCode) { return; } process.env.UNI_NVUE_APP_STYLES = appCssJsonCode; // 首次 build 时,可能还没生成 app-config-service 的文件,故仅写入环境变量 const appConfigServiceFilename = path_1.default.join(process.env.UNI_OUTPUT_DIR, uni_cli_shared_1.APP_CONFIG_SERVICE); if (!fs_extra_1.default.existsSync(appConfigServiceFilename)) { return; } const appConfigServiceCode = fs_extra_1.default.readFileSync(appConfigServiceFilename, 'utf8'); fs_extra_1.default.writeFileSync(appConfigServiceFilename, wrapperNVueAppStyles(appConfigServiceCode)); return true; } function buildNVuePage(filename, options) { return (0, uni_cli_shared_1.transformWithEsbuild)(`import App from './${filename}' const webview = plus.webview.currentWebview() if(webview){ const __pageId = parseInt(webview.id) const __pagePath = '${(0, uni_cli_shared_1.removeExt)(filename)}' let __pageQuery = {} try{ __pageQuery = JSON.parse(webview.__query__) }catch(e){} App.mpType = 'page' const app = Vue.createPageApp(App,{$store:getApp({allowDefault:true}).$store,__pageId,__pagePath,__pageQuery}) app.provide('__globalStyles', Vue.useCssStyles([...__uniConfig.styles, ...(App.styles||[])])) app.mount('#root') }`, path_1.default.join((0, utils_1.nvueOutDir)(), 'main.js'), options).then((res) => { if (res.outputFiles) { return res.outputFiles[0].text; } return ''; }); } function esbuildGlobalPlugin(options) { const keys = Object.keys(options); return { name: 'global', setup(build) { keys.forEach((key) => { const namespace = key + '-ns'; build.onResolve({ filter: new RegExp('^' + key + '$') }, ({ path }) => { return { path, namespace, }; }); build.onLoad({ filter: /.*/, namespace }, () => ({ contents: `module.exports = ${options[key]}`, loader: 'js', })); }); }, }; } function wrapperNVueAppStyles(code) { return code.replace(/__uniConfig.styles=(.*);\/\/styles/, `__uniConfig.styles=${process.env.UNI_NVUE_APP_STYLES || '[]'};//styles`); } exports.wrapperNVueAppStyles = wrapperNVueAppStyles; }, function(modId) { var map = {"../../utils":1745998156429,"../utils":1745998156437,"./appCss":1745998156438}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156437, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.isUTSComponent = exports.esbuildGlobals = exports.globals = exports.external = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function external(appService) { return appService ? ['vue'] : ['vue', 'vuex', 'pinia']; } exports.external = external; function globals(appService) { return appService ? { vue: 'Vue' } : { vue: 'Vue', vuex: 'Vuex', pinia: 'Pinia', }; } exports.globals = globals; function esbuildGlobals(appService) { return appService ? { vue: 'Vue' } : { vue: 'Vue', vuex: 'uni.Vuex', pinia: 'uni.Pinia', }; } exports.esbuildGlobals = esbuildGlobals; function isUTSComponent(tag) { const source = (0, uni_cli_shared_1.matchEasycom)(tag); return !!(source && source.includes('uts-proxy')); } exports.isUTSComponent = isUTSComponent; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156438, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRollupError = exports.uniAppCssPlugin = exports.APP_CSS_JS = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); exports.APP_CSS_JS = './app.css.js'; function uniAppCssPlugin() { const inputDir = process.env.UNI_INPUT_DIR; const appVueFilename = (0, uni_cli_shared_1.normalizePath)(path_1.default.resolve(inputDir, 'App.vue')); return { name: 'uni:app-nvue-app-style', // 提前到 @vite/plugin-vue 之前执行,因为在 nvue 编译时,仅 import 了 App.vue 的 styles,这样导致 descriptor // 一直使用的是上一次的(plugin-vue 会在 transformMain 中生成新的 descriptor),故不再交由 plugin-vue 来 load // 而是当前插件直接处理 enforce: 'pre', resolveId(id) { if (id === exports.APP_CSS_JS) { return exports.APP_CSS_JS; } }, load(id) { if (id === exports.APP_CSS_JS) { return genAppStylesCode(appVueFilename, this); } const { filename, query } = (0, uni_cli_shared_1.parseVueRequest)(id); if (query.vue && query.type === 'style' && appVueFilename === filename) { const descriptor = createAppDescriptor(filename, this); const block = descriptor.styles[query.index]; if (block) { return { code: block.content, map: '', }; } } }, }; } exports.uniAppCssPlugin = uniAppCssPlugin; const defaultAppStylesCode = `exports.styles = []`; async function genAppStylesCode(filename, pluginContext) { pluginContext.addWatchFile(filename); const descriptor = createAppDescriptor(filename, pluginContext); if (!descriptor.styles.length) { return defaultAppStylesCode; } let stylesCode = ``; const styleVars = []; for (let i = 0; i < descriptor.styles.length; i++) { const style = descriptor.styles[i]; const src = style.src || descriptor.filename; const attrsQuery = attrsToQuery(style.attrs, 'css'); const srcQuery = style.src ? `&src=${descriptor.id}` : ``; const query = `?vue&type=style&index=${i}${srcQuery}&inline`; const styleRequest = src + query + attrsQuery; stylesCode += `\nimport _style_${i} from ${JSON.stringify(styleRequest)}`; styleVars.push(`_style_${i}`); } return ` ${stylesCode} exports.styles = [${styleVars.join(',')}] `; } function readAppCode(filename) { if (!fs_extra_1.default.existsSync(filename)) { return ``; } const source = fs_extra_1.default.readFileSync(filename, 'utf8'); if (source.includes('#endif')) { return (0, uni_cli_shared_1.preNVueJs)((0, uni_cli_shared_1.preNVueHtml)(source)); } return source; } let appDescriptor; function createAppDescriptor(filename, pluginContext) { const source = readAppCode(filename); const id = (0, uni_cli_shared_1.hash)(source); if (!appDescriptor || appDescriptor.id !== id) { const { descriptor, errors } = require('@vue/compiler-sfc').parse(source, { filename, }); descriptor.id = id; if (errors.length) { errors.forEach((error) => pluginContext.error(createRollupError(filename, error))); } appDescriptor = descriptor; } return appDescriptor; } function createRollupError(id, error) { const { message, name, stack } = error; const rollupError = { id, plugin: 'vue', message, name, stack, }; if ('code' in error && error.loc) { rollupError.loc = { file: id, line: error.loc.start.line, column: error.loc.start.column, }; } return rollupError; } exports.createRollupError = createRollupError; // these are built-in query parameters so should be ignored // if the user happen to add them as attrs const ignoreList = ['id', 'index', 'src', 'type', 'lang', 'module']; function attrsToQuery(attrs, langFallback, forceLangFallback = false) { let query = ``; for (const name in attrs) { const value = attrs[name]; if (!ignoreList.includes(name)) { query += `&${encodeURIComponent(name)}${value ? `=${encodeURIComponent(value)}` : ``}`; } } if (langFallback || attrs.lang) { query += `lang` in attrs ? forceLangFallback ? `&lang.${langFallback}` : `&lang.${attrs.lang}` : `&lang.${langFallback}`; } return query; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156439, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniRenderjsPlugin = exports.APP_RENDERJS_JS = exports.APP_WXS_JS = void 0; const path_1 = __importDefault(require("path")); const debug_1 = __importDefault(require("debug")); const uni_shared_1 = require("@dcloudio/uni-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const debugRenderjs = (0, debug_1.default)('uni:app-renderjs'); exports.APP_WXS_JS = 'app-wxs.js'; exports.APP_RENDERJS_JS = 'app-renderjs.js'; const wxsModulesCache = new WeakMap(); const renderjsModulesCache = new WeakMap(); function uniRenderjsPlugin() { let resolvedConfig; let changed = false; return { name: 'uni:app-vue-renderjs', configResolved(config) { resolvedConfig = config; wxsModulesCache.set(resolvedConfig, new Map()); renderjsModulesCache.set(resolvedConfig, new Map()); }, async transform(code, id) { const { type, name, filename } = (0, uni_cli_shared_1.parseRenderjs)(id); if (!type) { return; } if (type !== 'wxs' && type !== 'renderjs') { return; } debugRenderjs(id); this.addWatchFile((0, uni_cli_shared_1.cleanUrl)(id)); if (!name) { this.error((0, uni_cli_shared_1.missingModuleName)(type, code)); } const modulePath = (0, uni_cli_shared_1.normalizePath)(path_1.default.normalize(path_1.default.relative(process.env.UNI_INPUT_DIR, id))); const moduleHashId = (0, uni_cli_shared_1.hash)(modulePath); const globalName = type === 'wxs' ? uni_shared_1.WXS_MODULES : uni_shared_1.RENDERJS_MODULES; const { isProduction } = resolvedConfig; const resultCode = normalizeCode(type === 'wxs' ? await transformWxs(code, filename, `__${globalName}['${moduleHashId}']`, isProduction) : await transformRenderjs(code, filename, `__${globalName}['${moduleHashId}']`, isProduction), globalName, isProduction); if (type === 'wxs') { wxsModulesCache.get(resolvedConfig).set(moduleHashId, resultCode); } else { renderjsModulesCache.get(resolvedConfig).set(moduleHashId, resultCode); } changed = true; debugRenderjs(type, modulePath, moduleHashId); return { code: `export default Comp => { ;(Comp.$${type} || (Comp.$${type} = [])).push('${name}') ;(Comp.$${globalName} || (Comp.$${globalName} = {}))['${name}'] = '${moduleHashId}' }`, map: { mappings: '' }, }; }, generateBundle() { if (!changed) { return; } const wxsCode = [...wxsModulesCache.get(resolvedConfig).values()].join('\n'); if (wxsCode) { this.emitFile({ fileName: exports.APP_WXS_JS, source: `var __${uni_shared_1.WXS_MODULES}={};\n` + wxsCode, type: 'asset', }); } const renderjsCode = [ ...renderjsModulesCache.get(resolvedConfig).values(), ].join('\n'); if (renderjsCode) { this.emitFile({ fileName: exports.APP_RENDERJS_JS, source: `var __${uni_shared_1.RENDERJS_MODULES}={};\n` + renderjsCode, type: 'asset', }); } }, }; } exports.uniRenderjsPlugin = uniRenderjsPlugin; function normalizeCode(code, globalName, isProduction) { return code.replace(isProduction ? `var __${globalName}=__${globalName}||{};` : `var __${globalName} = __${globalName} || {};`, ''); } function transformWxs(code, filename, globalName, isProduction) { return (0, uni_cli_shared_1.transformWithEsbuild)(code, filename, { format: 'iife', globalName, target: 'es6', minify: isProduction ? true : false, bundle: true, write: false, }).then((res) => { if (res.outputFiles) { return res.outputFiles[0].text; } return ''; }); } function transformRenderjs(code, filename, globalName, isProduction) { return (0, uni_cli_shared_1.transformWithEsbuild)(code, filename, { format: 'iife', globalName, target: 'es6', minify: isProduction ? true : false, bundle: true, write: false, }).then((res) => { if (res.outputFiles) { return res.outputFiles[0].text; } return ''; }); } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156440, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniAppVuePlugin = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const renderjs_1 = require("../plugins/renderjs"); const configResolved_1 = require("../../plugin/configResolved"); const utils_1 = require("../../utils"); const code_1 = require("@dcloudio/uni-cli-shared/dist/json/app/pages/code"); function uniAppVuePlugin() { const inputDir = process.env.UNI_INPUT_DIR; const mainPath = (0, uni_cli_shared_1.resolveMainPathOnce)(inputDir); let appCss = ''; function normalizeCssChunkFilename(id) { return (0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizePath)(path_1.default.relative(inputDir, id))) + '.css'; } return { name: 'uni:app-vue', config() { return { css: { postcss: { plugins: (0, uni_cli_shared_1.initPostcssPlugin)({ uniApp: (0, uni_cli_shared_1.parseRpx2UnitOnce)(inputDir, process.env.UNI_PLATFORM), }), }, }, build: { rollupOptions: { external: ['vue', '@vue/shared'], output: { name: 'AppService', banner: uni_cli_shared_1.polyfillCode + code_1.restoreGlobalCode, format: process.env.UNI_APP_CODE_SPLITING ? 'amd' : 'iife', amd: { autoId: true, }, entryFileNames: uni_cli_shared_1.APP_SERVICE_FILENAME, globals: { vue: 'Vue', '@vue/shared': 'uni.VueShared', }, }, }, }, }; }, configResolved: (0, configResolved_1.createConfigResolved)({ createCssPostPlugin(config) { return (0, uni_cli_shared_1.cssPostPlugin)(config, { platform: 'app', chunkCssFilename(id) { if (id === mainPath) { return 'app.css'; } else if ((0, uni_cli_shared_1.isUniPageSfcFile)(id, inputDir)) { return normalizeCssChunkFilename(id); } }, chunkCssCode(filename, cssCode) { if (filename === 'app.css') { if (!appCss) { appCss = fs_extra_1.default.readFileSync((0, uni_cli_shared_1.resolveBuiltIn)('@dcloudio/uni-app-plus/dist/style.css'), 'utf8'); } return appCss + '\n' + cssCode; } return cssCode; }, }); }, }), generateBundle(_, bundle) { this.emitFile({ fileName: '__uniappview.html', source: genViewHtml(bundle), type: 'asset', }); }, }; } exports.uniAppVuePlugin = uniAppVuePlugin; function genViewHtml(bundle) { const viewHtmlStr = fs_extra_1.default.readFileSync(path_1.default.join(utils_1.templateDir, '__uniappview.html'), 'utf8'); const { globalStyle } = (0, uni_cli_shared_1.parsePagesJsonOnce)(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM); const { darkmode = false } = (0, uni_cli_shared_1.getPlatformManifestJsonOnce)(); const __uniConfig = { globalStyle: { rpxCalcMaxDeviceWidth: globalStyle.rpxCalcMaxDeviceWidth, rpxCalcBaseDeviceWidth: globalStyle.rpxCalcBaseDeviceWidth, }, darkmode, }; const wxsCode = bundle[renderjs_1.APP_WXS_JS] ? `` : ''; const renderjsCode = bundle[renderjs_1.APP_RENDERJS_JS] ? `` : ''; const automatorCode = process.env.UNI_AUTOMATOR_WS_ENDPOINT ? `` : ''; return viewHtmlStr .toString() .replace('', wxsCode) .replace('', renderjsCode) .replace('', automatorCode) .replace('/*__uniConfig*/', `var __uniConfig = ${JSON.stringify(__uniConfig)}`); } }, function(modId) { var map = {"../plugins/renderjs":1745998156439,"../../plugin/configResolved":1745998156441,"../../utils":1745998156429}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156441, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.createConfigResolved = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function createConfigResolved({ createCssPostPlugin, }) { return (config) => { (0, uni_cli_shared_1.injectCssPlugin)(config); (0, uni_cli_shared_1.injectCssPostPlugin)(config, createCssPostPlugin(config)); // 强制不inline config.build.assetsInlineLimit = 0; (0, uni_cli_shared_1.injectAssetPlugin)(config); }; } exports.createConfigResolved = createConfigResolved; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156442, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.initNVuePlugins = exports.initNVueNodeTransforms = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const easycom_1 = require("../plugins/easycom"); const manifestJson_1 = require("../plugins/manifestJson"); const stats_1 = require("../plugins/stats"); const template_1 = require("../plugins/template"); const plugin_1 = require("./plugin"); const appCss_1 = require("./plugins/appCss"); const esbuild_1 = require("./plugins/esbuild"); const mainJs_1 = require("./plugins/mainJs"); const pagesJson_1 = require("./plugins/pagesJson"); const renderjs_1 = require("./plugins/renderjs"); var plugin_2 = require("./plugin"); Object.defineProperty(exports, "initNVueNodeTransforms", { enumerable: true, get: function () { return plugin_2.initNVueNodeTransforms; } }); function initNVuePlugins() { const renderer = process.env.UNI_RENDERER; const appService = process.env.UNI_RENDERER_NATIVE === 'appService'; return [ (0, appCss_1.uniAppCssPlugin)(), (0, easycom_1.uniEasycomPlugin)({ exclude: uni_cli_shared_1.UNI_EASYCOM_EXCLUDE }), (0, uni_cli_shared_1.uniHBuilderXConsolePlugin)(), (0, mainJs_1.uniMainJsPlugin)({ renderer, appService }), (0, manifestJson_1.uniManifestJsonPlugin)(), (0, pagesJson_1.uniPagesJsonPlugin)({ renderer, appService }), (0, uni_cli_shared_1.uniViteInjectPlugin)('uni:app-inject', (0, uni_cli_shared_1.initAppProvide)()), (0, renderjs_1.uniRenderjsPlugin)(), (0, plugin_1.uniAppNVuePlugin)({ appService }), (0, esbuild_1.uniEsbuildPlugin)({ renderer, appService }), ...(appService ? [(0, stats_1.uniStatsPlugin)(), (0, template_1.uniTemplatePlugin)({ renderer })] : []), ]; } exports.initNVuePlugins = initNVuePlugins; }, function(modId) { var map = {"../plugins/easycom":1745998156432,"../plugins/manifestJson":1745998156430,"../plugins/stats":1745998156431,"../plugins/template":1745998156428,"./plugin":1745998156443,"./plugins/appCss":1745998156438,"./plugins/esbuild":1745998156436,"./plugins/mainJs":1745998156454,"./plugins/pagesJson":1745998156452,"./plugins/renderjs":1745998156455}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156443, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniAppNVuePlugin = exports.initNVueDirectiveTransforms = exports.initNVueNodeTransforms = void 0; const path_1 = __importDefault(require("path")); const picocolors_1 = __importDefault(require("picocolors")); const uni_shared_1 = require("@dcloudio/uni-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_nvue_styler_1 = require("@dcloudio/uni-nvue-styler"); const utils_1 = require("../../utils"); // import { transformRenderWhole } from './transforms/transformRenderWhole' // import { transformAppendAsTree } from './transforms/transformAppendAsTree' const transformVideo_1 = require("./transforms/transformVideo"); const transformText_1 = require("./transforms/transformText"); const configResolved_1 = require("../../plugin/configResolved"); const utils_2 = require("../utils"); const transformRootNode_1 = require("./transforms/transformRootNode"); const vModel_1 = require("./transforms/vModel"); const vShow_1 = require("./transforms/vShow"); const transformAttrs_1 = require("./transforms/transformAttrs"); const pagesJson_1 = require("../plugins/pagesJson"); const transformUTSComponent_1 = require("./transforms/transformUTSComponent"); const uTags = { text: 'u-text', image: 'u-image', input: 'u-input', textarea: 'u-textarea', video: 'u-video', 'web-view': 'u-web-view', slider: 'u-slider', }; function initNVueNodeTransforms() { // 优先级必须确保 renderWhole > appendAsTree return [ transformRootNode_1.transformRootNode, (0, uni_cli_shared_1.createTransformTag)(uTags), transformAttrs_1.transformAttrs, transformText_1.transformText, transformVideo_1.transformVideo, transformUTSComponent_1.transformUTSComponent, // transformRenderWhole, // transformAppendAsTree, ]; } exports.initNVueNodeTransforms = initNVueNodeTransforms; function initNVueDirectiveTransforms() { return { model: vModel_1.transformModel, show: vShow_1.transformShow, }; } exports.initNVueDirectiveTransforms = initNVueDirectiveTransforms; function uniAppNVuePlugin({ appService, }) { const inputDir = process.env.UNI_INPUT_DIR; const mainPath = (0, uni_cli_shared_1.resolveMainPathOnce)(inputDir); return { name: 'uni:app-nvue', config() { return { css: { postcss: { plugins: (0, uni_cli_shared_1.initPostcssPlugin)({ uniApp: uni_shared_1.defaultNVueRpx2Unit, autoprefixer: false, }), }, }, build: { lib: { name: 'AppService', // 必须使用 lib 模式,否则会生成 preload 等代码 fileName: appService ? 'app-service' : 'app', entry: mainPath, formats: [appService ? 'iife' : 'es'], }, outDir: appService ? process.env.UNI_OUTPUT_DIR : (0, utils_1.nvueOutDir)(), rollupOptions: { external: (0, utils_2.external)(appService), output: { entryFileNames(chunk) { if (chunk.name === 'main' && chunk.isEntry) { return appService ? uni_cli_shared_1.APP_SERVICE_FILENAME : 'app.js'; } return chunk.name + '.js'; }, chunkFileNames: createChunkFileNames(inputDir), plugins: [(0, uni_cli_shared_1.dynamicImportPolyfill)(true)], globals: (0, utils_2.globals)(appService), }, }, }, }; }, configResolved: (0, configResolved_1.createConfigResolved)({ createCssPostPlugin(config) { return { name: 'vite:css-post', buildStart() { // 用于覆盖原始插件方法 // noop }, async transform(source, filename) { if (!uni_cli_shared_1.cssLangRE.test(filename) || uni_cli_shared_1.commonjsProxyRE.test(filename)) { return; } const nvuePages = pagesJson_1.nvuePagesCache.get(config); if (!nvuePages || !Object.keys(nvuePages).length) { // 当前项目没有 nvue 文件 return { code: `export default {}`, map: { mappings: '' } }; } const { code, messages } = await (0, uni_nvue_styler_1.parse)(source, { filename, logLevel: 'WARNING', }); messages.forEach((message) => { if (message.type === 'warning') { let msg = `[plugin:vite:nvue-css] ${message.text}`; if (message.line && message.column) { msg += `\n${(0, uni_cli_shared_1.generateCodeFrame)(source, { line: message.line, column: message.column, })}`; } msg += `\n${(0, uni_cli_shared_1.formatAtFilename)(filename)}`; config.logger.warn(picocolors_1.default.yellow(msg)); } }); return { code: `export default ${code}`, map: { mappings: '' } }; }, generateBundle() { // 用于覆盖原始插件方法 // noop }, }; }, }), }; } exports.uniAppNVuePlugin = uniAppNVuePlugin; function createChunkFileNames(inputDir) { return function chunkFileNames(chunk) { if (chunk.isDynamicEntry && chunk.facadeModuleId) { const { filename } = (0, uni_cli_shared_1.parseVueRequest)(chunk.facadeModuleId); if (filename.endsWith('.nvue')) { return ((0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizePath)(path_1.default.relative(inputDir, filename))) + '.js'); } } return '[name].js'; }; } }, function(modId) { var map = {"../../utils":1745998156429,"./transforms/transformVideo":1745998156444,"./transforms/transformText":1745998156445,"../../plugin/configResolved":1745998156441,"../utils":1745998156437,"./transforms/transformRootNode":1745998156446,"./transforms/vModel":1745998156448,"./transforms/vShow":1745998156449,"./transforms/transformAttrs":1745998156451,"../plugins/pagesJson":1745998156452,"./transforms/transformUTSComponent":1745998156453}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156444, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformVideo = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const compiler_core_1 = require("@vue/compiler-core"); function isVideo(node) { return node.tag === 'video' || node.tag === 'u-video'; } const transformVideo = (node, _) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } if (!isVideo(node)) { return; } if (!node.children.length) { return; } const firstChild = node.children[0]; if ((0, uni_cli_shared_1.isElementNode)(firstChild) && firstChild.tag === 'u-scalable') { return; } node.children = [createScalable(node)]; }; exports.transformVideo = transformVideo; function createScalable(node) { return { tag: 'u-scalable', type: 1 /* NodeTypes.ELEMENT */, tagType: 0 /* ElementTypes.ELEMENT */, props: [ (0, uni_cli_shared_1.createBindDirectiveNode)('style', (0, compiler_core_1.createSimpleExpression)('{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}')), ], isSelfClosing: true, children: node.children, codegenNode: undefined, ns: node.ns, loc: node.loc, }; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156445, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformText = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function isTextNode({ tag }) { return tag === 'text' || tag === 'u-text' || tag === 'button'; } function isTextElement(node) { return node.type === 1 /* NodeTypes.ELEMENT */ && node.tag === 'text'; } function isText(node) { const { type } = node; return (type === 2 /* NodeTypes.TEXT */ || type === 12 /* NodeTypes.TEXT_CALL */ || type === 5 /* NodeTypes.INTERPOLATION */ || type === 8 /* NodeTypes.COMPOUND_EXPRESSION */); } const transformText = (node, _) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } if (isTextNode(node)) { return; } const { children } = node; if (!children.length) { return; } for (let i = 0; i < children.length; i++) { const child = children[i]; if (isTextElement(child)) { parseText(child); } let currentContainer = undefined; if (isText(child)) { if (!currentContainer) { currentContainer = children[i] = createText(node, child); } for (let j = i + 1; j < children.length; j++) { const next = children[j]; if (isText(next)) { // 合并相邻的文本节点 currentContainer.children.push(next); children.splice(j, 1); j--; } else { currentContainer = undefined; break; } } } } }; exports.transformText = transformText; /* 1. 转换 \\n 为 \n 2. u-text 下只能有一个文本节点(不支持 children),需要移除子组件并合并文本 */ function parseText(node) { if (node.children.length) { let firstTextChild; for (let i = 0; i < node.children.length; i++) { const child = node.children[i]; if (isText(child) && typeof child.content === 'string') { if (!firstTextChild) { firstTextChild = child; firstTextChild.content = firstTextChild.content.replace(/\\n/g, '\n'); } else { ; firstTextChild.content += child.content.replace(/\\n/g, '\n'); node.children.splice(i, 1); i--; } } else if (child.type === 1 || child.type === 3) { node.children.splice(i, 1); i--; } else { firstTextChild = null; } } } } function createText(parent, node) { return { tag: 'u-text', type: 1 /* NodeTypes.ELEMENT */, tagType: 0 /* ElementTypes.ELEMENT */, props: [], isSelfClosing: false, children: [node], codegenNode: undefined, ns: parent.ns, loc: node.loc, }; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156446, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformRootNode = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const compiler_core_1 = require("@vue/compiler-core"); const transformRenderWhole_1 = require("./transformRenderWhole"); const SCROLLER_COMPONENTS = [ 'list', 'scroller', 'scroll-view', 'waterfall', 'recycle-list', ]; const transformRootNode = (node, context) => { if (node.type !== 0 /* NodeTypes.ROOT */) { return; } const isPage = !!context.bindingMetadata.__pageOptions; if (!isPage) { // 非页面组件,自动为根节点补充 render-whole return (0, transformRenderWhole_1.addRenderWhole)(node); } const { disableScroll, scrollIndicator } = context.bindingMetadata .__pageOptions; // 禁用滚动,或已包含滚动元素 if (disableScroll || hasScrollerElement(node)) { return wrapperByView(node); } return wrapperByScrollView(node, { scrollIndicator }); }; exports.transformRootNode = transformRootNode; function hasScrollerElement(node) { return node.children.some((child) => { if (child.type === 1 /* NodeTypes.ELEMENT */) { return SCROLLER_COMPONENTS.includes(child.tag); } }); } function wrapperByScrollView(node, { scrollIndicator }) { node.children = [ createElement('scroll-view', createScrollViewProps({ scrollIndicator }), node.children), ]; } const trueExpr = (0, compiler_core_1.createSimpleExpression)('true'); const falseExpr = (0, compiler_core_1.createSimpleExpression)('false'); function createScrollViewProps({ scrollIndicator, }) { return [ (0, uni_cli_shared_1.createBindDirectiveNode)('scrollY', trueExpr), (0, uni_cli_shared_1.createBindDirectiveNode)('showScrollbar', scrollIndicator === 'none' ? falseExpr : trueExpr), (0, uni_cli_shared_1.createBindDirectiveNode)('enableBackToTop', trueExpr), (0, uni_cli_shared_1.createAttributeNode)('bubble', 'true'), (0, uni_cli_shared_1.createBindDirectiveNode)('style', `{flexDirection:'column'}`), ]; } /** * 目前暂不支持多节点,故发现多节点时,自动补充一个 view 根节点 * @param node */ function wrapperByView(node) { if (node.children.length > 1) { node.children = [createElement('view', [], node.children)]; } } function createElement(tag, props, children) { return { type: 1 /* NodeTypes.ELEMENT */, ns: 0, tag, isSelfClosing: false, props, children, tagType: 0 /* ElementTypes.ELEMENT */, codegenNode: undefined, loc: compiler_core_1.locStub, }; } }, function(modId) { var map = {"./transformRenderWhole":1745998156447}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156447, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.addRenderWhole = exports.transformRenderWhole = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const compiler_core_1 = require("@vue/compiler-core"); const transformRenderWhole = (node, _) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } const prop = (0, compiler_core_1.findProp)(node, 'render-whole'); if (!prop) { return; } // render-whole => append (0, uni_cli_shared_1.renameProp)('append', prop); }; exports.transformRenderWhole = transformRenderWhole; // const RENDER_WHOLE_TAGS = [ 'view', 'scroll-view', 'swiper', 'match-media', 'movable-area', 'movable-view', 'cover-view', 'cover-image', 'form', 'picker', 'picker-view', 'navigator', 'map', ]; /** * 仅当根节点只有一个,标签在白名单,且开发者未主动配置的情况下,才补充 * @param node */ function addRenderWhole(node) { if (node.children.length === 1) { const element = node.children[0]; if ((0, uni_cli_shared_1.isElementNode)(element) && RENDER_WHOLE_TAGS.includes(element.tag)) { if (!(0, compiler_core_1.findProp)(element, 'render-whole') && !(0, compiler_core_1.findProp)(element, 'append') && !(0, compiler_core_1.findProp)(element, 'appendAsTree')) { element.props.push((0, uni_cli_shared_1.createBindDirectiveNode)('render-whole', (0, compiler_core_1.createSimpleExpression)('true'))); } } } } exports.addRenderWhole = addRenderWhole; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156448, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformModel = void 0; const compiler_core_1 = require("@vue/compiler-core"); const shared_1 = require("@vue/shared"); const tags = ['u-input', 'u-textarea']; const transformModel = (dir, node, context) => { const result = (0, compiler_core_1.transformModel)(dir, node, context); // 将 u-input,u-textarea 的 onUpdate:modelValue 事件转换为 onInput if (tags.includes(node.tag) && result.props.length >= 2) { const key = result.props[1].key; let value = result.props[1].value; if (value.type === 20 /* NodeTypes.JS_CACHE_EXPRESSION */) { value = value.value; } if ((0, compiler_core_1.isStaticExp)(key) && key.content === 'onUpdate:modelValue' && value.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */) { key.content = 'onInput'; // 替换 $event 为 $event.detail.value value.children = value.children.map((child) => { if ((0, shared_1.isString)(child)) { return child.replace(/=\s\$event/g, `= $event.detail.value`); } return child; }); } } return result; }; exports.transformModel = transformModel; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156449, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformShow = void 0; const errors_1 = require("./errors"); const transformShow = (dir, node, context) => { context.onError((0, errors_1.createNVueCompilerError)(0 /* NVueErrorCodes.X_V_SHOW */, dir.loc)); return { props: [], }; }; exports.transformShow = transformShow; }, function(modId) { var map = {"./errors":1745998156450}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156450, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.createNVueCompilerError = void 0; const compiler_core_1 = require("@vue/compiler-core"); const NVueErrorMessages = { [0 /* NVueErrorCodes.X_V_SHOW */]: 'nvue: v-show is not supported', [1 /* NVueErrorCodes.X_V_MODEL_DYNAMIC_TYPE */]: 'nvue: v-model with :type="" is not supported', [2 /* NVueErrorCodes.X_V_MODEL_AND_V_BIND */]: 'nvue: v-model with v-bind is not supported', }; function createNVueCompilerError(code, loc, additionalMessage) { return (0, compiler_core_1.createCompilerError)(code, loc, NVueErrorMessages, additionalMessage); } exports.createNVueCompilerError = createNVueCompilerError; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156451, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformAttrs = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_shared_1 = require("@dcloudio/uni-shared"); const shared_1 = require("@vue/shared"); /** * 将内置组件属性调整为驼峰 * @param node * @param context * @returns */ const transformAttrs = (node, context) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } if (!(0, uni_shared_1.isAppNVueNativeTag)(node.tag)) { return; } node.props.forEach((prop) => { if ((0, uni_cli_shared_1.isDirectiveNode)(prop)) { const { arg } = prop; if (arg && (0, uni_cli_shared_1.isSimpleExpressionNode)(arg)) { arg.content = normalizePropName(arg.content); } } else { prop.name = normalizePropName(prop.name); } }); }; exports.transformAttrs = transformAttrs; function normalizePropName(name) { if (name.startsWith('data-')) { return name; } return (0, shared_1.camelize)(name); } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156452, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniPagesJsonPlugin = exports.nvuePagesCache = void 0; const path_1 = __importDefault(require("path")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); exports.nvuePagesCache = new Map(); // 在 @vue/compiler-sfc@3.2.47 执行前重写 @vue/compiler-dom compile 方法 const nvuePages = {}; rewriteBindingMetadata(nvuePages); function uniPagesJsonPlugin({ renderer, appService, }) { return (0, uni_cli_shared_1.defineUniPagesJsonPlugin)((opts) => { return { name: 'uni:app-nvue-pages-json', enforce: 'pre', configResolved(config) { exports.nvuePagesCache.set(config, nvuePages); }, transform(code, id) { if (!opts.filter(id)) { return; } this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'pages.json')); (0, uni_cli_shared_1.getLocaleFiles)(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'locale')).forEach((filepath) => { this.addWatchFile(filepath); }); const pagesJson = (0, uni_cli_shared_1.normalizePagesJson)(code, process.env.UNI_PLATFORM); Object.keys(nvuePages).forEach((name) => { delete nvuePages[name]; }); pagesJson.pages.forEach((page) => { if (page.style.isNVue) { const filename = (0, uni_cli_shared_1.normalizePath)(path_1.default.resolve(process.env.UNI_INPUT_DIR, page.path + '.nvue')); nvuePages[filename] = { disableScroll: page.style.disableScroll, scrollIndicator: page.style.scrollIndicator, }; // fix: question/164673 // this.addWatchFile(filename) } }); if (renderer === 'native' && appService) { this.emitFile({ fileName: uni_cli_shared_1.APP_CONFIG_SERVICE, type: 'asset', source: (0, uni_cli_shared_1.normalizeAppConfigService)(pagesJson, (0, uni_cli_shared_1.parseManifestJsonOnce)(process.env.UNI_INPUT_DIR)), }); return { code: '', map: { mappings: '' }, }; } return { code: (0, uni_cli_shared_1.normalizeAppNVuePagesJson)(pagesJson), map: { mappings: '' }, }; }, }; }); } exports.uniPagesJsonPlugin = uniPagesJsonPlugin; /** * 在 BindingMetadata 中补充页面标记 */ function rewriteBindingMetadata(nvuePages) { const compilerDom = require((0, uni_cli_shared_1.resolveBuiltIn)('@vue/compiler-dom')); const { compile } = compilerDom; compilerDom.compile = (template, options = {}) => { if (options.filename) { if (nvuePages[options.filename]) { ; (options.bindingMetadata || (options.bindingMetadata = {})).__pageOptions = nvuePages[options.filename]; } } return compile(template, options); }; } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156453, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformUTSComponent = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const utils_1 = require("../../utils"); /** * 将uts组件保存到自定义组件列表中 * @param node * @param context * @returns */ const transformUTSComponent = (node, context) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } if ((0, utils_1.isUTSComponent)(node.tag)) { if (!context.root.components.includes(node.tag)) { context.components.add(node.tag); } } }; exports.transformUTSComponent = transformUTSComponent; }, function(modId) { var map = {"../../utils":1745998156437}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156454, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.uniMainJsPlugin = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const appCss_1 = require("./appCss"); function uniMainJsPlugin({ renderer, appService, }) { return (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => { return { name: 'uni:app-nvue-main-js', enforce: 'pre', transform(code, id) { if (opts.filter(id)) { if (renderer !== 'native') { return { code: `import './${uni_cli_shared_1.PAGES_JSON_JS}';import('${appCss_1.APP_CSS_JS}').then(()=>{})`, map: { mappings: '' }, }; } if (appService) { code = code.includes('createSSRApp') ? createApp(code) : createLegacyApp(code); return { code: `import './${uni_cli_shared_1.MANIFEST_JSON_JS}';\nimport './${uni_cli_shared_1.PAGES_JSON_JS}';\n` + code, map: { mappings: '' }, }; } return { code: `import './${uni_cli_shared_1.PAGES_JSON_JS}';`, map: { mappings: '' }, }; } }, }; }); } exports.uniMainJsPlugin = uniMainJsPlugin; function createApp(code) { return `${code.replace('createSSRApp', 'createVueApp as createSSRApp')};const {app:__app__,Vuex:__Vuex__,Pinia:__Pinia__}=createApp();uni.Vuex=__Vuex__;uni.Pinia=__Pinia__;__app__._component.mpType='app';__app__._component.render=()=>{};__app__.mount('#app');`; } function createLegacyApp(code) { return `function createApp(rootComponent,rootProps){rootComponent.mpTye='app';rootComponent.render=()=>{};const app=createVueApp(rootComponent,rootProps);const oldMount=app.mount;app.mount=(container)=>{const appVm=oldMount.call(app,container);return appVm;};return app;};${code.replace('createApp', 'createVueApp')}`; } }, function(modId) { var map = {"./appCss":1745998156438}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156455, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.uniRenderjsPlugin = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function uniRenderjsPlugin() { return { name: 'uni:app-nvue-renderjs', async transform(code, id) { const { type } = (0, uni_cli_shared_1.parseRenderjs)(id); if (!type) { return; } return { code: `export default {}`, map: { mappings: '' }, }; }, }; } exports.uniRenderjsPlugin = uniRenderjsPlugin; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156456, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.uniAppPlugin = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_1 = require("./uni"); const build_1 = require("./build"); function uniAppPlugin({ renderer, appService, } = { appService: false, }) { return { name: 'uni:app', uni: (0, uni_1.uniOptions)(), config(config, env) { return { base: '/', build: (0, build_1.buildOptions)({ renderer, appService }, config, env), optimizeDeps: { disabled: true, }, resolve: { alias: { // vue-i18n 默认会启用 new Function 来构造翻译函数,导致在 Android 上可能报`TypeError: no access` 错误 // 故:启用 runtime 模式,内部定制了简易的 compileToFunction 'vue-i18n': (0, uni_cli_shared_1.resolveVueI18nRuntime)(), }, }, }; }, }; } exports.uniAppPlugin = uniAppPlugin; }, function(modId) { var map = {"./uni":1745998156457}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156457, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniOptions = void 0; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const uni_shared_1 = require("@dcloudio/uni-shared"); const uni_i18n_1 = require("@dcloudio/uni-i18n"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const nvue_1 = require("../../nvue"); const plugin_1 = require("../../nvue/plugin"); const utils_1 = require("../../nvue/utils"); const transformWxsProps_1 = require("./transforms/transformWxsProps"); function isAppNVueNativeTag(tag) { return (0, utils_1.isUTSComponent)(tag) || (0, uni_shared_1.isAppNVueNativeTag)(tag); } function uniOptions(compilerType = process.env.UNI_COMPILER) { const isNVueCompiler = compilerType === 'nvue'; return { copyOptions() { const platform = process.env.UNI_PLATFORM; const inputDir = process.env.UNI_INPUT_DIR; const outputDir = process.env.UNI_OUTPUT_DIR; const targets = []; // 自动化测试时,不启用隐私政策 if (!process.env.UNI_AUTOMATOR_WS_ENDPOINT) { targets.push({ src: 'androidPrivacy.json', dest: outputDir, transform(source) { const options = (0, uni_cli_shared_1.initI18nOptions)(platform, inputDir, false, true); if (!options) { return; } return (0, uni_i18n_1.compileI18nJsonStr)(source.toString(), options); }, }); const debugFilename = '__nvue_debug__'; if (fs_extra_1.default.existsSync(path_1.default.resolve(inputDir, debugFilename))) { targets.push({ src: debugFilename, dest: outputDir, }); } } return { assets: ['hybrid/html/**/*', 'uni_modules/*/hybrid/html/**/*'], targets, }; }, compilerOptions: { isNativeTag: isNVueCompiler ? isAppNVueNativeTag : uni_shared_1.isAppNativeTag, nodeTransforms: [ ...(isNVueCompiler ? (0, nvue_1.initNVueNodeTransforms)() : [transformWxsProps_1.transformWxsProps]), uni_cli_shared_1.transformTapToClick, uni_cli_shared_1.transformMatchMedia, uni_cli_shared_1.transformPageHead, ], directiveTransforms: { ...(isNVueCompiler ? (0, plugin_1.initNVueDirectiveTransforms)() : {}), }, }, }; } exports.uniOptions = uniOptions; }, function(modId) { var map = {"../../nvue":1745998156442,"../../nvue/plugin":1745998156443,"../../nvue/utils":1745998156437,"./transforms/transformWxsProps":1745998156458}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156458, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformWxsProps = void 0; const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_shared_1 = require("@dcloudio/uni-shared"); const compiler_core_1 = require("@vue/compiler-core"); const runtimeHelpers_1 = require("./runtimeHelpers"); const transformWxsProps = (node, context) => { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return; } node.props.forEach((prop) => { if ((0, uni_cli_shared_1.isDirectiveNode)(prop) && prop.arg && (0, uni_cli_shared_1.isSimpleExpressionNode)(prop.arg)) { const { content } = prop.arg; if (content.startsWith(uni_shared_1.ATTR_CHANGE_PREFIX)) { const propName = content.substring(uni_shared_1.ATTR_CHANGE_PREFIX.length); const wxsProp = (0, compiler_core_1.findProp)(node, propName, true); if (wxsProp && (0, uni_cli_shared_1.isDirectiveNode)(wxsProp) && wxsProp.exp) { wxsProp.exp = (0, compiler_core_1.createCompoundExpression)([ context.helperString(runtimeHelpers_1.WXS_PROP), '(', wxsProp.exp, ')', ]); } } } }); }; exports.transformWxsProps = transformWxsProps; }, function(modId) { var map = {"./runtimeHelpers":1745998156459}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156459, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.WXS_PROP = void 0; const compiler_core_1 = require("@vue/compiler-core"); exports.WXS_PROP = Symbol(`wxsProp`); (0, compiler_core_1.registerRuntimeHelpers)({ [exports.WXS_PROP]: 'wp', }); }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) return __REQUIRE__(1745998156426); })() //miniprogram-npm-outsideDeps=["@dcloudio/uni-cli-shared","path","fs-extra","@vue/shared","@rollup/pluginutils","debug","@vue/compiler-sfc","@dcloudio/uni-shared","@dcloudio/uni-cli-shared/dist/json/app/pages/code","picocolors","@dcloudio/uni-nvue-styler","@vue/compiler-core","./build","@dcloudio/uni-i18n"] //# sourceMappingURL=index.js.map