From e4962592e016984ba6f386a8a64a6a36be50bf58 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Fri, 15 Nov 2019 12:25:13 +0800 Subject: [PATCH] refactor(cli): improve find vue-loader logic --- .../vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js | 2 +- .../webpack-uni-nvue-loader/lib/template.recycle.js | 4 ++-- .../packages/h5-vue-template-loader/index.js | 4 ++-- packages/webpack-uni-mp-loader/lib/template-new.js | 4 ++-- packages/webpack-uni-mp-loader/lib/template.js | 8 ++++---- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js b/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js index 49b4193e8..f5e070a2c 100644 --- a/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js +++ b/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js @@ -96,7 +96,7 @@ const rules = [{ babelrc: false } }, - jsPreprocessorLoader + jsPreprocessorLoader ], exclude (modulePath) { return excludeModuleReg.test(modulePath) && modulePath.indexOf('@dcloudio') === -1 diff --git a/packages/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/template.recycle.js b/packages/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/template.recycle.js index f812d34fc..579b1cfe4 100644 --- a/packages/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/template.recycle.js +++ b/packages/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/template.recycle.js @@ -2,8 +2,8 @@ const loaderUtils = require('loader-utils') module.exports = function(content) { this.cacheable && this.cacheable() - const vueLoaderOptions = this.loaders[0] - if (vueLoaderOptions.ident === 'vue-loader-options') { + const vueLoaderOptions = this.loaders.find(loader => loader.ident) + if (vueLoaderOptions && vueLoaderOptions && vueLoaderOptions.ident === 'vue-loader-options') { const params = loaderUtils.parseQuery(this.resourceQuery) if (params.recyclable) { Object.assign(vueLoaderOptions.options.compilerOptions, { diff --git a/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js b/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js index 27e9fd2d6..fcee3e658 100644 --- a/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js @@ -5,8 +5,8 @@ const loaderUtils = require('loader-utils') module.exports = function(content) { this.cacheable && this.cacheable() - const vueLoaderOptions = this.loaders[0] - if (vueLoaderOptions.ident === 'vue-loader-options') { + const vueLoaderOptions = this.loaders.find(loader => loader.ident) + if (vueLoaderOptions && vueLoaderOptions.ident === 'vue-loader-options') { const params = loaderUtils.parseQuery(this.resourceQuery) /* eslint-disable no-mixed-operators */ const filterModules = JSON.parse(params && params['filter-modules'] || '{}') diff --git a/packages/webpack-uni-mp-loader/lib/template-new.js b/packages/webpack-uni-mp-loader/lib/template-new.js index 58b79b5ca..492a30dc3 100644 --- a/packages/webpack-uni-mp-loader/lib/template-new.js +++ b/packages/webpack-uni-mp-loader/lib/template-new.js @@ -32,8 +32,8 @@ const filterTagName = getPlatformFilterTag() || '' module.exports = function (content) { this.cacheable && this.cacheable() - const vueLoaderOptions = this.loaders[0] - if (vueLoaderOptions.ident === 'vue-loader-options') { + const vueLoaderOptions = this.loaders.find(loader => loader.ident) + if (vueLoaderOptions && vueLoaderOptions.ident === 'vue-loader-options') { const globalUsingComponents = getGlobalUsingComponents() const realResourcePath = path.relative(process.env.UNI_INPUT_DIR, this.resourcePath) const resourcePath = normalizeNodeModules(removeExt(realResourcePath) + templateExt) diff --git a/packages/webpack-uni-mp-loader/lib/template.js b/packages/webpack-uni-mp-loader/lib/template.js index 017f11a07..5579d318c 100644 --- a/packages/webpack-uni-mp-loader/lib/template.js +++ b/packages/webpack-uni-mp-loader/lib/template.js @@ -25,8 +25,8 @@ module.exports = function (content) { if (process.env.UNI_USING_COMPONENTS) { // 向 uni-template-compier 传递 emitFile - const vueLoaderOptions = this.loaders[0] - if (vueLoaderOptions.ident === 'vue-loader-options') { + const vueLoaderOptions = this.loaders.find(loader => loader.ident) + if (vueLoaderOptions && vueLoaderOptions.ident === 'vue-loader-options') { Object.assign(vueLoaderOptions.options.compilerOptions, { resourcePath: removeExt(realResourcePath) + templateExt, emitFile: this.emitFile @@ -57,8 +57,8 @@ module.exports = function (content) { cacheCompilerOptions(realResourcePath, compilerOptions) // 向 vue-loader templateLoader 传递 compilerOptions - const vueLoaderOptions = this.loaders[0] - if (vueLoaderOptions.ident === 'vue-loader-options') { + const vueLoaderOptions = this.loaders.find(loader => loader.ident) + if (vueLoaderOptions && vueLoaderOptions.ident === 'vue-loader-options') { Object.assign(vueLoaderOptions.options.compilerOptions, compilerOptions) } else { throw new Error('vue-loader-options parse error') -- GitLab