diff --git a/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/parseCustomBlocks.js b/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/parseCustomBlocks.js index 0c32f1b8a2be7d753ba2c18bf7e12309b1b6e1eb..063e637e53d572fef3fed2f7496d558a0218018e 100644 --- a/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/parseCustomBlocks.js +++ b/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/parseCustomBlocks.js @@ -62,7 +62,7 @@ module.exports = function parseCustomBlocks(descriptor, options) { filterModule.attrs.src = normalizeNodeModules(filterModule.attrs.src) } }) - descriptor.template.attrs['filter-modules'] = JSON.stringify(filterModules) + descriptor.template.attrs['filter-modules'] = Buffer.from(JSON.stringify(filterModules)).toString('base64') } return descriptor diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js index c4dcc586b91c3e4691cbd000bcaa9628b72968b6..6d68059dee4bfdcf3c5a0c733afd49c37cdbef6a 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js @@ -1,13 +1,20 @@ const loaderUtils = require('loader-utils') -module.exports = function (content) { +function parseFilterModules(filterModules) { + if (filterModules) { + return JSON.parse(Buffer.from(filterModules, 'base64').toString('ascii')) + } + return {} +} + +module.exports = function(content) { this.cacheable && this.cacheable() const vueLoaderOptions = this.loaders.find(loader => loader.ident === 'vue-loader-options') if (vueLoaderOptions) { const params = loaderUtils.parseQuery(this.resourceQuery) /* eslint-disable no-mixed-operators */ - const filterModules = JSON.parse(params && params['filter-modules'] || '{}') + const filterModules = parseFilterModules(params && params['filter-modules']) Object.assign(vueLoaderOptions.options.compilerOptions, { filterModules: Object.keys(filterModules) }) diff --git a/packages/webpack-uni-mp-loader/lib/template-new.js b/packages/webpack-uni-mp-loader/lib/template-new.js index 9801d11f1ec9854d213c4a3f58b138c539a61b27..37673e881a6e617e55a32b4643f8b791a30a6a5a 100644 --- a/packages/webpack-uni-mp-loader/lib/template-new.js +++ b/packages/webpack-uni-mp-loader/lib/template-new.js @@ -28,6 +28,13 @@ const { const templateExt = getPlatformExts().template const filterTagName = getPlatformFilterTag() || '' + +function parseFilterModules (filterModules) { + if (filterModules) { + return JSON.parse(Buffer.from(filterModules, 'base64').toString('ascii')) + } + return {} +} module.exports = function (content) { this.cacheable && this.cacheable() @@ -41,7 +48,7 @@ module.exports = function (content) { const params = loaderUtils.parseQuery(this.resourceQuery) /* eslint-disable no-mixed-operators */ - const filterModules = JSON.parse(params && params['filter-modules'] || '{}') + const filterModules = parseFilterModules(params && params['filter-modules']) Object.assign(vueLoaderOptions.options.compilerOptions, { mp: { platform: process.env.UNI_PLATFORM