提交 e653e856 编写于 作者: Q qiang

feat(vue-cli-plugin-hbuilderx): nvue support webpack5

上级 e3800009
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const webpack = require('webpack')
const { const {
getPlatformScss, getPlatformScss,
...@@ -20,27 +21,33 @@ const preprocessLoader = { ...@@ -20,27 +21,33 @@ const preprocessLoader = {
options: nvueCssPreprocessOptions 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 = { const postcssLoader = {
loader: 'postcss-loader', loader: 'postcss-loader',
options: { 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')
]
}
} }
// sass 全局变量 // sass 全局变量
...@@ -143,4 +150,4 @@ module.exports = [{ ...@@ -143,4 +150,4 @@ module.exports = [{
}, { }, {
test: /\.styl(us)?$/, test: /\.styl(us)?$/,
oneOf: createOneOf(stylusLoader) oneOf: createOneOf(stylusLoader)
}] }]
...@@ -134,7 +134,7 @@ const rules = [{ ...@@ -134,7 +134,7 @@ const rules = [{
babelrc: false babelrc: false
} }
}, },
jsPreprocessorLoader jsPreprocessorLoader
] ]
// exclude (modulePath) { // nvue js均提供babel,否则还得提供transpileDependencies配置 // exclude (modulePath) { // nvue js均提供babel,否则还得提供transpileDependencies配置
// return excludeModuleReg.test(modulePath) && modulePath.indexOf('@dcloudio') === -1 // return excludeModuleReg.test(modulePath) && modulePath.indexOf('@dcloudio') === -1
...@@ -208,7 +208,7 @@ if (process.env.UNI_USING_V3_NATIVE) { ...@@ -208,7 +208,7 @@ if (process.env.UNI_USING_V3_NATIVE) {
return '' return ''
} }
}])) }]))
} catch (e) {} } catch (e) { }
} }
if (process.env.UNI_USING_NATIVE || process.env.UNI_USING_V3_NATIVE) { if (process.env.UNI_USING_NATIVE || process.env.UNI_USING_V3_NATIVE) {
...@@ -305,7 +305,7 @@ try { ...@@ -305,7 +305,7 @@ try {
dir: process.env.UNI_INPUT_DIR dir: process.env.UNI_INPUT_DIR
})) }))
} }
} catch (e) {} } catch (e) { }
module.exports = function () { module.exports = function () {
return { return {
...@@ -322,8 +322,7 @@ module.exports = function () { ...@@ -322,8 +322,7 @@ module.exports = function () {
performance: { performance: {
hints: false hints: false
}, },
optimization: { optimization: Object.assign({
namedModules: false,
minimizer: [ minimizer: [
new TerserPlugin({ new TerserPlugin({
terserOptions: { terserOptions: {
...@@ -333,7 +332,7 @@ module.exports = function () { ...@@ -333,7 +332,7 @@ module.exports = function () {
} }
}) })
] ]
}, }, webpack.version[0] > 4 ? {} : { namedModules: false }),
output: { output: {
path: process.env.UNI_OUTPUT_DIR, path: process.env.UNI_OUTPUT_DIR,
filename: '[name].js' filename: '[name].js'
...@@ -377,7 +376,7 @@ module.exports = function () { ...@@ -377,7 +376,7 @@ module.exports = function () {
reasons: true, reasons: true,
errorDetails: true errorDetails: true
}, },
node: { node: webpack.version[0] > 4 ? false : {
global: false, global: false,
Buffer: false, Buffer: false,
__filename: false, __filename: false,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册