@tarojs/service 3.7.0-beta.3 → 3.7.0-beta.4
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/dist/platform-plugin-base/mini.js +16 -1
- package/dist/platform-plugin-base/mini.js.map +1 -1
- package/dist/platform-plugin-base/webpack/hmr-plugin.js +37 -0
- package/dist/platform-plugin-base/webpack/hmr-plugin.js.map +1 -0
- package/package.json +6 -6
- package/src/platform-plugin-base/mini.ts +16 -0
- package/src/platform-plugin-base/webpack/hmr-plugin.ts +37 -0
- package/types/platform-plugin-base/mini.d.ts +1 -0
- package/types/platform-plugin-base/webpack/hmr-plugin.d.ts +3 -0
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.TaroPlatformBase = void 0;
|
|
13
13
|
const helper_1 = require("@tarojs/helper");
|
|
14
14
|
const shared_1 = require("@tarojs/shared");
|
|
15
|
+
const path = require("path");
|
|
15
16
|
const package_1 = require("../utils/package");
|
|
16
17
|
const platform_1 = require("./platform");
|
|
17
18
|
class TaroPlatformBase extends platform_1.default {
|
|
@@ -32,7 +33,7 @@ class TaroPlatformBase extends platform_1.default {
|
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
setupImpl() {
|
|
35
|
-
var _a;
|
|
36
|
+
var _a, _b;
|
|
36
37
|
const { output } = this.config;
|
|
37
38
|
// webpack5 原生支持 output.clean 选项,但是 webpack4 不支持, 为统一行为,这里做一下兼容
|
|
38
39
|
// (在 packages/taro-mini-runner/src/webpack/chain.ts 和 packages/taro-webpack-runner/src/utils/chain.ts 的 makeConfig 中对 clean 选项做了过滤)
|
|
@@ -52,6 +53,19 @@ class TaroPlatformBase extends platform_1.default {
|
|
|
52
53
|
const { printLog, processTypeEnum } = this.ctx.helper;
|
|
53
54
|
printLog("start" /* processTypeEnum.START */, '开发者工具-项目目录', `${this.ctx.paths.outputPath}`);
|
|
54
55
|
}
|
|
56
|
+
// Webpack5 代码自动热重载
|
|
57
|
+
if (this.compiler === 'webpack5' && this.config.isWatch && this.projectConfigJsonOutputPath) {
|
|
58
|
+
try {
|
|
59
|
+
const projectConfig = require(this.projectConfigJsonOutputPath);
|
|
60
|
+
if (((_b = projectConfig.setting) === null || _b === void 0 ? void 0 : _b.compileHotReLoad) === true) {
|
|
61
|
+
this.ctx.modifyWebpackChain(({ chain }) => {
|
|
62
|
+
chain.plugin('TaroMiniHMRPlugin')
|
|
63
|
+
.use(require(path.join(__dirname, './webpack/hmr-plugin.js')).default);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (_) { } // eslint-disable-line no-empty
|
|
68
|
+
}
|
|
55
69
|
}
|
|
56
70
|
printDevelopmentTip(platform) {
|
|
57
71
|
var _a;
|
|
@@ -149,6 +163,7 @@ ${exampleCommand}`));
|
|
|
149
163
|
srcConfigName: src,
|
|
150
164
|
distConfigName: dist
|
|
151
165
|
});
|
|
166
|
+
this.projectConfigJsonOutputPath = `${this.ctx.paths.outputPath}/${dist}`;
|
|
152
167
|
}
|
|
153
168
|
/**
|
|
154
169
|
* 递归替换对象的 key 值
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mini.js","sourceRoot":"","sources":["../../src/platform-plugin-base/mini.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+C;AAC/C,2CAAwD;
|
|
1
|
+
{"version":3,"file":"mini.js","sourceRoot":"","sources":["../../src/platform-plugin-base/mini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class TaroMiniHMRPlugin {
|
|
4
|
+
apply(compiler) {
|
|
5
|
+
compiler.hooks.thisCompilation.tap('TaroMiniHMRPlugin', compilation => {
|
|
6
|
+
compilation.hooks.beforeChunkAssets.tap('TaroMiniHMRPlugin', () => {
|
|
7
|
+
compilation.chunks.forEach(chunk => {
|
|
8
|
+
if (chunk.hasRuntime() && chunk.name === 'runtime') {
|
|
9
|
+
const runtimeModules = compilation.chunkGraph.getChunkRuntimeModulesInOrder(chunk);
|
|
10
|
+
for (const module of runtimeModules) {
|
|
11
|
+
if (module.name === 'jsonp chunk loading') {
|
|
12
|
+
const runtimeSource = compilation.codeGenerationResults.getSource(module, chunk.runtime, 'runtime');
|
|
13
|
+
runtimeSource._value += `
|
|
14
|
+
var miniHMRCallback = function(parentChunkLoadingFunction, data) {
|
|
15
|
+
var chunkIds = data[0];
|
|
16
|
+
var moreModules = data[1];
|
|
17
|
+
if(chunkIds.some(function(id) { return installedChunks[id] === 0 })) {
|
|
18
|
+
chunkIds.forEach(id => {
|
|
19
|
+
delete installedChunks[id]
|
|
20
|
+
})
|
|
21
|
+
Object.keys(moreModules).forEach(id => {
|
|
22
|
+
delete __webpack_module_cache__[id]
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
|
|
26
|
+
}
|
|
27
|
+
chunkLoadingGlobal.push = miniHMRCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = TaroMiniHMRPlugin;
|
|
37
|
+
//# sourceMappingURL=hmr-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmr-plugin.js","sourceRoot":"","sources":["../../../src/platform-plugin-base/webpack/hmr-plugin.ts"],"names":[],"mappings":";;AAAA,MAAqB,iBAAiB;IACpC,KAAK,CAAE,QAAQ;QACb,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE;YACpE,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAChE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACjC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;wBAClD,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;wBAClF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;4BACnC,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE;gCACzC,MAAM,aAAa,GAAG,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAC/D,MAAM,EACN,KAAK,CAAC,OAAO,EACb,SAAS,CACV,CAAA;gCACD,aAAa,CAAC,MAAM,IAAI;;;;;;;;;;;;;;wGAcgE,CAAA;6BACzF;yBACF;qBACF;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApCD,oCAoCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/service",
|
|
3
|
-
"version": "3.7.0-beta.
|
|
3
|
+
"version": "3.7.0-beta.4",
|
|
4
4
|
"description": "Taro Service",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"tapable": "^1.1.3",
|
|
31
31
|
"webpack-merge": "^4.2.2",
|
|
32
32
|
"ora": "^5.0.0",
|
|
33
|
-
"@tarojs/
|
|
34
|
-
"@tarojs/
|
|
35
|
-
"@tarojs/
|
|
36
|
-
"@tarojs/runner-utils": "3.7.0-beta.
|
|
33
|
+
"@tarojs/helper": "3.7.0-beta.4",
|
|
34
|
+
"@tarojs/taro": "3.7.0-beta.4",
|
|
35
|
+
"@tarojs/shared": "3.7.0-beta.4",
|
|
36
|
+
"@tarojs/runner-utils": "3.7.0-beta.4"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"vite": "^4.2.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"build": "run-s clean prod",
|
|
44
44
|
"dev": "tsc -w",
|
|
45
45
|
"prod": "tsc",
|
|
46
|
-
"clean": "rimraf dist types",
|
|
46
|
+
"clean": "rimraf --impl=move-remove dist types",
|
|
47
47
|
"test": "cross-env NODE_ENV=jest jest",
|
|
48
48
|
"test:ci": "cross-env NODE_ENV=jest jest --ci -i --passWithNoTests",
|
|
49
49
|
"test:dev": "cross-env NODE_ENV=jest jest --watch"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { recursiveMerge } from '@tarojs/helper'
|
|
2
2
|
import { isObject, PLATFORM_TYPE } from '@tarojs/shared'
|
|
3
|
+
import * as path from 'path'
|
|
3
4
|
|
|
4
5
|
import { getPkgVersion } from '../utils/package'
|
|
5
6
|
import TaroPlatform from './platform'
|
|
@@ -24,6 +25,8 @@ export abstract class TaroPlatformBase<T extends TConfig = TConfig> extends Taro
|
|
|
24
25
|
projectConfigJson?: string
|
|
25
26
|
taroComponentsPath?: string
|
|
26
27
|
|
|
28
|
+
private projectConfigJsonOutputPath: string
|
|
29
|
+
|
|
27
30
|
/**
|
|
28
31
|
* 1. 清空 dist 文件夹
|
|
29
32
|
* 2. 输出编译提示
|
|
@@ -53,6 +56,18 @@ export abstract class TaroPlatformBase<T extends TConfig = TConfig> extends Taro
|
|
|
53
56
|
const { printLog, processTypeEnum } = this.ctx.helper
|
|
54
57
|
printLog(processTypeEnum.START, '开发者工具-项目目录', `${this.ctx.paths.outputPath}`)
|
|
55
58
|
}
|
|
59
|
+
// Webpack5 代码自动热重载
|
|
60
|
+
if (this.compiler === 'webpack5' && this.config.isWatch && this.projectConfigJsonOutputPath) {
|
|
61
|
+
try {
|
|
62
|
+
const projectConfig = require(this.projectConfigJsonOutputPath)
|
|
63
|
+
if (projectConfig.setting?.compileHotReLoad === true) {
|
|
64
|
+
this.ctx.modifyWebpackChain(({ chain }) => {
|
|
65
|
+
chain.plugin('TaroMiniHMRPlugin')
|
|
66
|
+
.use(require(path.join(__dirname, './webpack/hmr-plugin.js')).default)
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
} catch (_) {} // eslint-disable-line no-empty
|
|
70
|
+
}
|
|
56
71
|
}
|
|
57
72
|
|
|
58
73
|
protected printDevelopmentTip (platform: string) {
|
|
@@ -168,6 +183,7 @@ ${exampleCommand}`))
|
|
|
168
183
|
srcConfigName: src,
|
|
169
184
|
distConfigName: dist
|
|
170
185
|
})
|
|
186
|
+
this.projectConfigJsonOutputPath = `${this.ctx.paths.outputPath}/${dist}`
|
|
171
187
|
}
|
|
172
188
|
|
|
173
189
|
/**
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export default class TaroMiniHMRPlugin {
|
|
2
|
+
apply (compiler) {
|
|
3
|
+
compiler.hooks.thisCompilation.tap('TaroMiniHMRPlugin', compilation => {
|
|
4
|
+
compilation.hooks.beforeChunkAssets.tap('TaroMiniHMRPlugin', () => {
|
|
5
|
+
compilation.chunks.forEach(chunk => {
|
|
6
|
+
if (chunk.hasRuntime() && chunk.name === 'runtime') {
|
|
7
|
+
const runtimeModules = compilation.chunkGraph.getChunkRuntimeModulesInOrder(chunk)
|
|
8
|
+
for (const module of runtimeModules) {
|
|
9
|
+
if (module.name === 'jsonp chunk loading') {
|
|
10
|
+
const runtimeSource = compilation.codeGenerationResults.getSource(
|
|
11
|
+
module,
|
|
12
|
+
chunk.runtime,
|
|
13
|
+
'runtime'
|
|
14
|
+
)
|
|
15
|
+
runtimeSource._value += `
|
|
16
|
+
var miniHMRCallback = function(parentChunkLoadingFunction, data) {
|
|
17
|
+
var chunkIds = data[0];
|
|
18
|
+
var moreModules = data[1];
|
|
19
|
+
if(chunkIds.some(function(id) { return installedChunks[id] === 0 })) {
|
|
20
|
+
chunkIds.forEach(id => {
|
|
21
|
+
delete installedChunks[id]
|
|
22
|
+
})
|
|
23
|
+
Object.keys(moreModules).forEach(id => {
|
|
24
|
+
delete __webpack_module_cache__[id]
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
|
|
28
|
+
}
|
|
29
|
+
chunkLoadingGlobal.push = miniHMRCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));`
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -16,6 +16,7 @@ export declare abstract class TaroPlatformBase<T extends TConfig = TConfig> exte
|
|
|
16
16
|
abstract template: RecursiveTemplate | UnRecursiveTemplate;
|
|
17
17
|
projectConfigJson?: string;
|
|
18
18
|
taroComponentsPath?: string;
|
|
19
|
+
private projectConfigJsonOutputPath;
|
|
19
20
|
/**
|
|
20
21
|
* 1. 清空 dist 文件夹
|
|
21
22
|
* 2. 输出编译提示
|