@mpxjs/webpack-plugin 2.7.57 → 2.7.59
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/lib/index.js +1 -0
- package/lib/json-compiler/index.js +2 -1
- package/lib/loader.js +5 -3
- package/lib/selector.js +7 -1
- package/lib/utils/check-core-version-match.js +18 -0
- package/lib/utils/get-entry-name.js +1 -1
- package/lib/utils/ts-loader-watch-run-loader-filter.js +23 -0
- package/lib/wxss/loader.js +14 -0
- package/lib/wxss/options.json +5 -0
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -58,6 +58,7 @@ const stringifyLoadersAndResource = require('./utils/stringify-loaders-resource'
|
|
|
58
58
|
const emitFile = require('./utils/emit-file')
|
|
59
59
|
const { MPX_PROCESSED_FLAG, MPX_DISABLE_EXTRACTOR_CACHE } = require('./utils/const')
|
|
60
60
|
const isEmptyObject = require('./utils/is-empty-object')
|
|
61
|
+
require('./utils/check-core-version-match')
|
|
61
62
|
|
|
62
63
|
const isProductionLikeMode = options => {
|
|
63
64
|
return options.mode === 'production' || !options.mode
|
|
@@ -119,7 +119,8 @@ module.exports = function (content) {
|
|
|
119
119
|
if (err) return nativeCallback(err)
|
|
120
120
|
let output = `var json = ${JSON.stringify(json, null, 2)};\n`
|
|
121
121
|
if (processOutput) output = processOutput(output)
|
|
122
|
-
|
|
122
|
+
const jsonSpace = this.minimize ? 0 : 2
|
|
123
|
+
output += `module.exports = JSON.stringify(json, null, ${jsonSpace});\n`
|
|
123
124
|
nativeCallback(null, output)
|
|
124
125
|
}
|
|
125
126
|
|
package/lib/loader.js
CHANGED
|
@@ -18,15 +18,17 @@ const AppEntryDependency = require('./dependencies/AppEntryDependency')
|
|
|
18
18
|
const RecordResourceMapDependency = require('./dependencies/RecordResourceMapDependency')
|
|
19
19
|
const RecordVueContentDependency = require('./dependencies/RecordVueContentDependency')
|
|
20
20
|
const CommonJsVariableDependency = require('./dependencies/CommonJsVariableDependency')
|
|
21
|
+
const tsWatchRunLoaderFilter = require('./utils/ts-loader-watch-run-loader-filter')
|
|
21
22
|
const { MPX_APP_MODULE_ID } = require('./utils/const')
|
|
22
23
|
const path = require('path')
|
|
23
24
|
|
|
24
25
|
module.exports = function (content) {
|
|
25
26
|
this.cacheable()
|
|
26
27
|
|
|
27
|
-
// 兼容处理处理ts-loader中watch-run/updateFile逻辑,直接跳过当前loader及后续的
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// 兼容处理处理ts-loader中watch-run/updateFile逻辑,直接跳过当前loader及后续的loader返回内容
|
|
29
|
+
const pathExtname = path.extname(this.resourcePath)
|
|
30
|
+
if (!['.vue', '.mpx'].includes(pathExtname)) {
|
|
31
|
+
this.loaderIndex = tsWatchRunLoaderFilter(this.loaders, this.loaderIndex)
|
|
30
32
|
return content
|
|
31
33
|
}
|
|
32
34
|
|
package/lib/selector.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
const parseComponent = require('./parser')
|
|
2
2
|
const parseRequest = require('./utils/parse-request')
|
|
3
|
+
const tsWatchRunLoaderFilter = require('./utils/ts-loader-watch-run-loader-filter')
|
|
4
|
+
const path = require("path");
|
|
3
5
|
|
|
4
6
|
module.exports = function (content) {
|
|
5
7
|
this.cacheable()
|
|
6
|
-
|
|
8
|
+
const pathExtname = path.extname(this.resourcePath)
|
|
9
|
+
if (!['.vue', '.mpx'].includes(pathExtname)) {
|
|
10
|
+
this.loaderIndex = tsWatchRunLoaderFilter(this.loaders, this.loaderIndex)
|
|
11
|
+
return content
|
|
12
|
+
}
|
|
7
13
|
// 移除mpx访问依赖,支持 thread-loader
|
|
8
14
|
const { mode, env } = this.getOptions() || {}
|
|
9
15
|
if (!mode && !env) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// @mpxjs/webpack-plugin 2.7.x -> @mpxjs/core 2.7.x
|
|
2
|
+
// @mpxjs/webpack-plugin 2.8.x -> @mpxjs/core 2.8.x
|
|
3
|
+
const coreVersion = require('@mpxjs/core/package.json').version
|
|
4
|
+
const packageName = require('../../package.json').name
|
|
5
|
+
const packageVersion = require('../../package.json').version
|
|
6
|
+
|
|
7
|
+
if (packageVersion.slice(0, 3) !== coreVersion.slice(0, 3)) {
|
|
8
|
+
const corePath = require.resolve('@mpxjs/core')
|
|
9
|
+
const packagePath = require.resolve('../../package.json')
|
|
10
|
+
throw new Error(
|
|
11
|
+
`@mpxjs/core packages version mismatch:
|
|
12
|
+
-@mpxjs/core@${coreVersion}(${corePath})
|
|
13
|
+
-${packageName}@${packageVersion}(${packagePath})
|
|
14
|
+
This may cause things to work incorrectly, Make sure to use the same minor version for both.
|
|
15
|
+
For example: @mpxjs/core@2.7.x with @mpxjs/webpack-plugin@2.7.x
|
|
16
|
+
`
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -4,7 +4,7 @@ module.exports = function (loaderContext) {
|
|
|
4
4
|
let entryName = ''
|
|
5
5
|
for (const [name, { dependencies }] of loaderContext._compilation.entries) {
|
|
6
6
|
const entryModule = moduleGraph.getModule(dependencies[0])
|
|
7
|
-
if (entryModule.resource === loaderContext.resource) {
|
|
7
|
+
if (entryModule && entryModule.resource === loaderContext.resource) {
|
|
8
8
|
entryName = name
|
|
9
9
|
break
|
|
10
10
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const normalize = require('./normalize')
|
|
2
|
+
const selectorPath = normalize.lib('selector.js')
|
|
3
|
+
const scriptSetupPath = normalize.lib('script-setup-compiler/index.js')
|
|
4
|
+
const mpxLoaderPath = normalize.lib('loader.js')
|
|
5
|
+
const { has } = require('./set')
|
|
6
|
+
|
|
7
|
+
const tsLoaderWatchRunFilterLoaders = new Set([
|
|
8
|
+
selectorPath,
|
|
9
|
+
scriptSetupPath,
|
|
10
|
+
mpxLoaderPath,
|
|
11
|
+
'node_modules/vue-loader/lib/index.js'
|
|
12
|
+
])
|
|
13
|
+
|
|
14
|
+
module.exports = (loaders, loaderIndex) => {
|
|
15
|
+
for (let len = loaders.length; len > 0; --len) {
|
|
16
|
+
const currentLoader = loaders[len - 1]
|
|
17
|
+
if (!has(tsLoaderWatchRunFilterLoaders, filterLoaderPath => currentLoader.path.endsWith(filterLoaderPath))) {
|
|
18
|
+
break
|
|
19
|
+
}
|
|
20
|
+
loaderIndex--
|
|
21
|
+
}
|
|
22
|
+
return loaderIndex
|
|
23
|
+
}
|
package/lib/wxss/loader.js
CHANGED
|
@@ -144,6 +144,20 @@ module.exports = async function loader (content, map, meta) {
|
|
|
144
144
|
)
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
if (this.minimize) {
|
|
148
|
+
const cssnano = require('cssnano')
|
|
149
|
+
const minimizeOptions = rawOptions.minimize || {}
|
|
150
|
+
let cssnanoConfig = {
|
|
151
|
+
preset: ['cssnano-preset-default', minimizeOptions.optimisation || {}]
|
|
152
|
+
}
|
|
153
|
+
if (minimizeOptions.advanced) {
|
|
154
|
+
cssnanoConfig = {
|
|
155
|
+
preset: ['cssnano-preset-advanced', minimizeOptions.optimisation || {}]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
plugins.push(cssnano(cssnanoConfig))
|
|
159
|
+
}
|
|
160
|
+
|
|
147
161
|
// Reuse CSS AST (PostCSS AST e.g 'postcss-loader') to avoid reparsing
|
|
148
162
|
if (meta) {
|
|
149
163
|
const { ast } = meta
|
package/lib/wxss/options.json
CHANGED
|
@@ -203,6 +203,11 @@
|
|
|
203
203
|
"description": "Allows exporting styles as array with modules, string or constructable stylesheet (i.e. `CSSStyleSheet`).",
|
|
204
204
|
"link": "https://github.com/webpack-contrib/css-loader#exporttype",
|
|
205
205
|
"enum": ["array", "string", "css-style-sheet"]
|
|
206
|
+
},
|
|
207
|
+
"minimize": {
|
|
208
|
+
"description": "css minimization config.",
|
|
209
|
+
"link": "https://www.cssnano.cn/docs/what-are-optimisations/",
|
|
210
|
+
"type": "object"
|
|
206
211
|
}
|
|
207
212
|
},
|
|
208
213
|
"type": "object"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpxjs/webpack-plugin",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.59",
|
|
4
4
|
"description": "mpx compile core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mpx"
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"engines": {
|
|
81
81
|
"node": ">=14.14.0"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "92ab578c176f5c4439f40d2eb045b01e95a98038"
|
|
84
84
|
}
|