diff --git a/packages/vue-cli-plugin-hbuilderx/build/css-loader.conf.js b/packages/vue-cli-plugin-hbuilderx/build/css-loader.conf.js index 87bd71ca3983ba553febee1f9cfc1d63fd0cd08c..f0f8d26a5ab639de82d7be686c102123b9145321 100644 --- a/packages/vue-cli-plugin-hbuilderx/build/css-loader.conf.js +++ b/packages/vue-cli-plugin-hbuilderx/build/css-loader.conf.js @@ -1,5 +1,6 @@ const fs = require('fs') const path = require('path') +const webpack = require('webpack') const { getPlatformScss, @@ -20,27 +21,33 @@ const preprocessLoader = { options: nvueCssPreprocessOptions } +const options = { + sourceMap: false +} +const plugins = [ + require('postcss-import')({ + resolve (id, basedir, importOptions) { + if (id.startsWith('~@/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) + } else if (id.startsWith('@/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) + } else if (id.startsWith('/') && !id.startsWith('//')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) + } + return id + } + }), + require('@dcloudio/vue-cli-plugin-uni/packages/postcss') +] +if (webpack.version[0] > 4) { + options.postcssOptions = { plugins } +} else { + options.parser = require('postcss-comment') + options.plugins = plugins +} const postcssLoader = { loader: 'postcss-loader', - options: { - sourceMap: false, - parser: require('postcss-comment'), - plugins: [ - require('postcss-import')({ - resolve (id, basedir, importOptions) { - if (id.startsWith('~@/')) { - return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) - } else if (id.startsWith('@/')) { - return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) - } else if (id.startsWith('/') && !id.startsWith('//')) { - return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) - } - return id - } - }), - require('@dcloudio/vue-cli-plugin-uni/packages/postcss') - ] - } + options } // sass 全局变量 @@ -143,4 +150,4 @@ module.exports = [{ }, { test: /\.styl(us)?$/, oneOf: createOneOf(stylusLoader) -}] +}] 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 89c7053cbc1c0f5b15eb4836a5e28d52f2a2989c..df8c7627c81f03d1a8833baea482003775b3e746 100644 --- a/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js +++ b/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js @@ -134,7 +134,7 @@ const rules = [{ babelrc: false } }, - jsPreprocessorLoader + jsPreprocessorLoader ] // exclude (modulePath) { // nvue js均提供babel,否则还得提供transpileDependencies配置 // return excludeModuleReg.test(modulePath) && modulePath.indexOf('@dcloudio') === -1 @@ -208,7 +208,7 @@ if (process.env.UNI_USING_V3_NATIVE) { return '' } }])) - } catch (e) {} + } catch (e) { } } if (process.env.UNI_USING_NATIVE || process.env.UNI_USING_V3_NATIVE) { @@ -305,7 +305,7 @@ try { dir: process.env.UNI_INPUT_DIR })) } -} catch (e) {} +} catch (e) { } module.exports = function () { return { @@ -322,8 +322,7 @@ module.exports = function () { performance: { hints: false }, - optimization: { - namedModules: false, + optimization: Object.assign({ minimizer: [ new TerserPlugin({ terserOptions: { @@ -333,7 +332,7 @@ module.exports = function () { } }) ] - }, + }, webpack.version[0] > 4 ? {} : { namedModules: false }), output: { path: process.env.UNI_OUTPUT_DIR, filename: '[name].js' @@ -377,7 +376,7 @@ module.exports = function () { reasons: true, errorDetails: true }, - node: { + node: webpack.version[0] > 4 ? false : { global: false, Buffer: false, __filename: false,