@tarojs/plugin-html 3.5.0-alpha.3 → 3.5.0-alpha.6

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["\nimport type { IPluginContext, TaroPlatformBase } from '@tarojs/service'\nimport { isArray, isString } from '@tarojs/shared'\nimport * as path from 'path'\nimport * as parser from '@babel/parser'\nimport traverse from '@babel/traverse'\nimport * as t from '@babel/types'\nimport generator from '@babel/generator'\n\ninterface IOptions {\n pxtransformBlackList?: any[]\n modifyElements?(inline: string[], block: string[]): void\n enableSizeAPIs?: boolean\n}\n\ninterface IComponentConfig {\n includes: Set<string>\n}\n\ninterface OnParseCreateElementArgs {\n nodeName: string\n componentConfig: IComponentConfig\n}\n\ninterface ModifyComponentConfigArgs {\n componentConfig: IComponentConfig,\n config: Record<string, any>\n}\n\nexport default (ctx: IPluginContext, options: IOptions) => {\n const inlineElements = ['i', 'abbr', 'select', 'acronym', 'small', 'bdi', 'kbd', 'strong', 'big', 'sub', 'sup', 'br', 'mark', 'meter', 'template', 'cite', 'object', 'time', 'code', 'output', 'u', 'data', 'picture', 'tt', 'datalist', 'var', 'dfn', 'del', 'q', 'em', 's', 'embed', 'samp', 'b']\n const blockElements = ['body', 'svg', 'address', 'fieldset', 'li', 'span', 'article', 'figcaption', 'main', 'aside', 'figure', 'nav', 'blockquote', 'footer', 'ol', 'details', 'p', 'dialog', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'dd', 'header', 'section', 'div', 'hgroup', 'table', 'dl', 'hr', 'ul', 'dt', 'view', 'view-block']\n const specialElements = ['slot', 'form', 'iframe', 'img', 'audio', 'video', 'canvas', 'a', 'input', 'label', 'textarea', 'progress', 'button']\n\n patchMappingElements(ctx, options, inlineElements, blockElements)\n\n // 默认允许使用 getBoundingClientRect 等 API\n ctx.modifyWebpackChain(({ chain }) => {\n chain\n .plugin('definePlugin')\n .tap(args => {\n args[0].ENABLE_SIZE_APIS = options.enableSizeAPIs ?? true\n return args\n })\n })\n ctx.registerMethod({\n name: 'onSetupClose',\n fn (platform: TaroPlatformBase) {\n injectRuntimePath(platform)\n }\n })\n // React 收集使用到的小程序组件\n ctx.onParseCreateElement(({ nodeName, componentConfig }: OnParseCreateElementArgs) => {\n if (!(\n inlineElements.includes(nodeName) ||\n blockElements.includes(nodeName) ||\n specialElements.includes(nodeName)\n )) return\n\n const simple = ['audio', 'button', 'canvas', 'form', 'label', 'progress', 'textarea', 'video']\n const special = {\n a: ['navigator'],\n iframe: ['web-view'],\n img: ['image'],\n input: ['input', 'checkbox', 'radio']\n }\n const includes = componentConfig.includes\n\n if (simple.includes(nodeName) && !includes.has(nodeName)) {\n includes.add(nodeName)\n } else if (nodeName in special) {\n const maps = special[nodeName]\n maps.forEach(item => {\n !includes.has(item) && includes.add(item)\n })\n }\n })\n // 如果组件使用渲染函数而不是模板,我们分析不了使用到的内置组件,所以只能默认加上所有 HTML 对应的小程序组件模板\n ctx.modifyComponentConfig(({ componentConfig, config }: ModifyComponentConfigArgs) => {\n if (config.framework === 'vue' || config.framework === 'vue3') {\n ['audio', 'button', 'canvas', 'form', 'label', 'progress', 'textarea', 'video', 'navigator', 'web-view', 'image', 'input', 'checkbox', 'radio'].forEach(item => {\n componentConfig.includes.add(item)\n })\n }\n })\n // 修改 H5 postcss options\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.platform) return\n modifyPostcssConfigs(opts, options, opts.platform === 'h5')\n })\n}\n\nfunction injectRuntimePath (platform: TaroPlatformBase) {\n const injectedPath = '@tarojs/plugin-html/dist/runtime'\n if (isArray(platform.runtimePath)) {\n platform.runtimePath.push(injectedPath)\n } else if (isString(platform.runtimePath)) {\n platform.runtimePath = [platform.runtimePath, injectedPath]\n }\n}\n\nfunction modifyPostcssConfigs (config: Record<string, any>, options: IOptions, isH5?: boolean) {\n config.postcss ||= {}\n const postcssConfig = config.postcss\n\n if (!isH5) {\n postcssConfig.htmltransform ||= {\n enable: true\n }\n }\n\n if (options.pxtransformBlackList) {\n postcssConfig.pxtransform ||= {\n enable: true\n }\n const pxtransformConfig = postcssConfig.pxtransform\n\n if (pxtransformConfig.enable) {\n pxtransformConfig.config ||= {}\n const config = pxtransformConfig.config\n config.selectorBlackList ||= []\n config.selectorBlackList = config.selectorBlackList.concat(options.pxtransformBlackList)\n }\n }\n}\n\nfunction patchMappingElements (ctx: IPluginContext, options: IOptions, inlineElements: string[], blockElements: string[]) {\n const helper = ctx.helper\n const filePath = path.resolve(__dirname, './runtime.js')\n const content = helper.fs.readFileSync(filePath).toString()\n const ast = parser.parse(content, { sourceType: 'unambiguous' })\n\n options.modifyElements?.(inlineElements, blockElements)\n\n traverse(ast, {\n VariableDeclarator (path) {\n const node = path.node\n const varid = node.id\n if (varid.type === 'Identifier') {\n if (varid.name === 'inlineElements') {\n node.init = getNewExpression(inlineElements)\n }\n if (varid.name === 'blockElements') {\n node.init = getNewExpression(blockElements)\n }\n }\n }\n })\n\n const str = generator(ast).code\n helper.fs.writeFileSync(filePath, str)\n}\n\nfunction getNewExpression (elements: string[]) {\n return t.newExpression(\n t.identifier('Set'),\n [t.arrayExpression(elements.map(el => t.stringLiteral(el)))]\n )\n}\n"],"names":["isArray","isString","path","parser","traverse","generator","t"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,YAAe,CAAC,GAAmB,EAAE,OAAiB,KAAI;AACxD,IAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AACnS,IAAA,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;AAC3U,IAAA,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE9I,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;;IAGjE,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;QACnC,KAAK;aACF,MAAM,CAAC,cAAc,CAAC;aACtB,GAAG,CAAC,IAAI,IAAG;;AACV,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAA;AACzD,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;AACN,KAAC,CAAC,CAAA;IACF,GAAG,CAAC,cAAc,CAAC;AACjB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,EAAE,CAAE,QAA0B,EAAA;YAC5B,iBAAiB,CAAC,QAAQ,CAAC,CAAA;SAC5B;AACF,KAAA,CAAC,CAAA;;IAEF,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAA4B,KAAI;AACnF,QAAA,IAAI,EACF,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACjC,YAAA,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAChC,YAAA,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACnC;YAAE,OAAM;AAET,QAAA,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AAC9F,QAAA,MAAM,OAAO,GAAG;YACd,CAAC,EAAE,CAAC,WAAW,CAAC;YAChB,MAAM,EAAE,CAAC,UAAU,CAAC;YACpB,GAAG,EAAE,CAAC,OAAO,CAAC;AACd,YAAA,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;SACtC,CAAA;AACD,QAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAA;AAEzC,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACxD,YAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACvB,SAAA;aAAM,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,IAAG;AAClB,gBAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC3C,aAAC,CAAC,CAAA;AACH,SAAA;AACH,KAAC,CAAC,CAAA;;IAEF,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAA6B,KAAI;QACnF,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7D,YAAA,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AAC7J,gBAAA,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACpC,aAAC,CAAC,CAAA;AACH,SAAA;AACH,KAAC,CAAC,CAAA;;IAEF,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;QAChC,IAAI,EAAC,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,QAAQ,CAAA;YAAE,OAAM;QAC3B,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;AAC7D,KAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,iBAAiB,CAAE,QAA0B,EAAA;IACpD,MAAM,YAAY,GAAG,kCAAkC,CAAA;AACvD,IAAA,IAAIA,cAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACjC,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AACxC,KAAA;AAAM,SAAA,IAAIC,eAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACzC,QAAQ,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AAC5D,KAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAE,MAA2B,EAAE,OAAiB,EAAE,IAAc,EAAA;IAC3F,MAAM,CAAC,OAAO,KAAd,MAAM,CAAC,OAAO,GAAK,EAAE,CAAA,CAAA;AACrB,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAA;IAEpC,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,aAAa,CAAC,aAAa,KAA3B,aAAa,CAAC,aAAa,GAAK;AAC9B,YAAA,MAAM,EAAE,IAAI;SACb,CAAA,CAAA;AACF,KAAA;IAED,IAAI,OAAO,CAAC,oBAAoB,EAAE;AAChC,QAAA,aAAa,CAAC,WAAW,KAAzB,aAAa,CAAC,WAAW,GAAK;AAC5B,YAAA,MAAM,EAAE,IAAI;SACb,CAAA,CAAA;AACD,QAAA,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,CAAA;QAEnD,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAC5B,iBAAiB,CAAC,MAAM,KAAxB,iBAAiB,CAAC,MAAM,GAAK,EAAE,CAAA,CAAA;AAC/B,YAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;YACvC,MAAM,CAAC,iBAAiB,KAAxB,MAAM,CAAC,iBAAiB,GAAK,EAAE,CAAA,CAAA;AAC/B,YAAA,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACzF,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAE,GAAmB,EAAE,OAAiB,EAAE,cAAwB,EAAE,aAAuB,EAAA;;AACtH,IAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IACzB,MAAM,QAAQ,GAAGC,eAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;AACxD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC3D,IAAA,MAAM,GAAG,GAAGC,iBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAEhE,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,MAAtB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAO,EAAkB,cAAc,EAAE,aAAa,CAAC,CAAA;IAEvDC,4BAAQ,CAAC,GAAG,EAAE;AACZ,QAAA,kBAAkB,CAAE,IAAI,EAAA;AACtB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAA;AACrB,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/B,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACnC,oBAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAC7C,iBAAA;AACD,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;AAClC,oBAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;AAC5C,iBAAA;AACF,aAAA;SACF;AACF,KAAA,CAAC,CAAA;IAEF,MAAM,GAAG,GAAGC,6BAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAE,QAAkB,EAAA;AAC3C,IAAA,OAAOC,YAAC,CAAC,aAAa,CACpBA,YAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EACnB,CAACA,YAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAIA,YAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["\nimport { isArray, isString } from '@tarojs/shared'\nimport * as path from 'path'\nimport * as parser from '@babel/parser'\nimport traverse from '@babel/traverse'\nimport * as t from '@babel/types'\nimport generator from '@babel/generator'\n\nimport type { IPluginContext, TaroPlatformBase } from '@tarojs/service'\n\ninterface IOptions {\n pxtransformBlackList?: any[]\n modifyElements?(inline: string[], block: string[]): void\n enableSizeAPIs?: boolean\n}\n\ninterface IComponentConfig {\n includes: Set<string>\n}\n\ninterface OnParseCreateElementArgs {\n nodeName: string\n componentConfig: IComponentConfig\n}\n\ninterface ModifyComponentConfigArgs {\n componentConfig: IComponentConfig,\n config: Record<string, any>\n}\n\nexport default (ctx: IPluginContext, options: IOptions) => {\n const inlineElements = ['i', 'abbr', 'select', 'acronym', 'small', 'bdi', 'kbd', 'strong', 'big', 'sub', 'sup', 'br', 'mark', 'meter', 'template', 'cite', 'object', 'time', 'code', 'output', 'u', 'data', 'picture', 'tt', 'datalist', 'var', 'dfn', 'del', 'q', 'em', 's', 'embed', 'samp', 'b']\n const blockElements = ['body', 'svg', 'address', 'fieldset', 'li', 'span', 'article', 'figcaption', 'main', 'aside', 'figure', 'nav', 'blockquote', 'footer', 'ol', 'details', 'p', 'dialog', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'dd', 'header', 'section', 'div', 'hgroup', 'table', 'dl', 'hr', 'ul', 'dt', 'view', 'view-block']\n const specialElements = ['slot', 'form', 'iframe', 'img', 'audio', 'video', 'canvas', 'a', 'input', 'label', 'textarea', 'progress', 'button']\n\n patchMappingElements(ctx, options, inlineElements, blockElements)\n\n // 默认允许使用 getBoundingClientRect 等 API\n ctx.modifyWebpackChain(({ chain }) => {\n chain\n .plugin('definePlugin')\n .tap(args => {\n args[0].ENABLE_SIZE_APIS = options.enableSizeAPIs ?? true\n return args\n })\n })\n ctx.registerMethod({\n name: 'onSetupClose',\n fn (platform: TaroPlatformBase) {\n injectRuntimePath(platform)\n }\n })\n // React 收集使用到的小程序组件\n ctx.onParseCreateElement(({ nodeName, componentConfig }: OnParseCreateElementArgs) => {\n if (!(\n inlineElements.includes(nodeName) ||\n blockElements.includes(nodeName) ||\n specialElements.includes(nodeName)\n )) return\n\n const simple = ['audio', 'button', 'canvas', 'form', 'label', 'progress', 'textarea', 'video']\n const special = {\n a: ['navigator'],\n iframe: ['web-view'],\n img: ['image'],\n input: ['input', 'checkbox', 'radio']\n }\n const includes = componentConfig.includes\n\n if (simple.includes(nodeName) && !includes.has(nodeName)) {\n includes.add(nodeName)\n } else if (nodeName in special) {\n const maps = special[nodeName]\n maps.forEach(item => {\n !includes.has(item) && includes.add(item)\n })\n }\n })\n // 如果组件使用渲染函数而不是模板,我们分析不了使用到的内置组件,所以只能默认加上所有 HTML 对应的小程序组件模板\n ctx.modifyComponentConfig(({ componentConfig, config }: ModifyComponentConfigArgs) => {\n if (config.framework === 'vue' || config.framework === 'vue3') {\n ['audio', 'button', 'canvas', 'form', 'label', 'progress', 'textarea', 'video', 'navigator', 'web-view', 'image', 'input', 'checkbox', 'radio'].forEach(item => {\n componentConfig.includes.add(item)\n })\n }\n })\n // 修改 H5 postcss options\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.platform) return\n modifyPostcssConfigs(opts, options, opts.platform === 'h5')\n })\n}\n\nfunction injectRuntimePath (platform: TaroPlatformBase) {\n const injectedPath = '@tarojs/plugin-html/dist/runtime'\n if (isArray(platform.runtimePath)) {\n platform.runtimePath.push(injectedPath)\n } else if (isString(platform.runtimePath)) {\n platform.runtimePath = [platform.runtimePath, injectedPath]\n }\n}\n\nfunction modifyPostcssConfigs (config: Record<string, any>, options: IOptions, isH5?: boolean) {\n config.postcss ||= {}\n const postcssConfig = config.postcss\n\n if (!isH5) {\n postcssConfig.htmltransform ||= {\n enable: true\n }\n }\n\n if (options.pxtransformBlackList) {\n postcssConfig.pxtransform ||= {\n enable: true\n }\n const pxtransformConfig = postcssConfig.pxtransform\n\n if (pxtransformConfig.enable) {\n pxtransformConfig.config ||= {}\n const config = pxtransformConfig.config\n config.selectorBlackList ||= []\n config.selectorBlackList = config.selectorBlackList.concat(options.pxtransformBlackList)\n }\n }\n}\n\nfunction patchMappingElements (ctx: IPluginContext, options: IOptions, inlineElements: string[], blockElements: string[]) {\n const helper = ctx.helper\n const filePath = path.resolve(__dirname, './runtime.js')\n const content = helper.fs.readFileSync(filePath).toString()\n const ast = parser.parse(content, { sourceType: 'unambiguous' })\n\n options.modifyElements?.(inlineElements, blockElements)\n\n traverse(ast, {\n VariableDeclarator (path) {\n const node = path.node\n const varid = node.id\n if (varid.type === 'Identifier') {\n if (varid.name === 'inlineElements') {\n node.init = getNewExpression(inlineElements)\n }\n if (varid.name === 'blockElements') {\n node.init = getNewExpression(blockElements)\n }\n }\n }\n })\n\n const str = generator(ast).code\n helper.fs.writeFileSync(filePath, str)\n}\n\nfunction getNewExpression (elements: string[]) {\n return t.newExpression(\n t.identifier('Set'),\n [t.arrayExpression(elements.map(el => t.stringLiteral(el)))]\n )\n}\n"],"names":["isArray","isString","path","parser","traverse","generator","t"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/plugin-html",
3
- "version": "3.5.0-alpha.3",
3
+ "version": "3.5.0-alpha.6",
4
4
  "description": "Taro 小程序端支持使用 HTML 标签的插件",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -28,10 +28,12 @@
28
28
  "url": "https://github.com/NervJS/taro/issues"
29
29
  },
30
30
  "homepage": "https://github.com/NervJS/taro#readme",
31
+ "dependencies": {
32
+ "@tarojs/runtime": "3.5.0-alpha.6",
33
+ "@tarojs/shared": "3.5.0-alpha.6"
34
+ },
31
35
  "devDependencies": {
32
- "@tarojs/runtime": "3.5.0-alpha.3",
33
- "@tarojs/service": "3.5.0-alpha.3",
34
- "@tarojs/shared": "3.5.0-alpha.3"
36
+ "@tarojs/service": "3.5.0-alpha.6"
35
37
  },
36
- "gitHead": "31c8fe1b7ddfd586a21dca05d11fef5314069a69"
38
+ "gitHead": "b447f059f6713464176fb9eac7347cd7f54d7a87"
37
39
  }
package/src/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
 
2
- import type { IPluginContext, TaroPlatformBase } from '@tarojs/service'
3
2
  import { isArray, isString } from '@tarojs/shared'
4
3
  import * as path from 'path'
5
4
  import * as parser from '@babel/parser'
@@ -7,6 +6,8 @@ import traverse from '@babel/traverse'
7
6
  import * as t from '@babel/types'
8
7
  import generator from '@babel/generator'
9
8
 
9
+ import type { IPluginContext, TaroPlatformBase } from '@tarojs/service'
10
+
10
11
  interface IOptions {
11
12
  pxtransformBlackList?: any[]
12
13
  modifyElements?(inline: string[], block: string[]): void