xhs-mp-compiler-cli 1.1.1 → 1.1.3

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.
Files changed (110) hide show
  1. package/package.json +11 -5
  2. package/dist/bin/xhs-mp-cli-build.d.ts +0 -2
  3. package/dist/bin/xhs-mp-cli-build.js +0 -40
  4. package/dist/bin/xhs-mp-cli-dev.d.ts +0 -2
  5. package/dist/bin/xhs-mp-cli-dev.js +0 -59
  6. package/dist/bin/xhs-mp-cli.d.ts +0 -2
  7. package/dist/bin/xhs-mp-cli.js +0 -16
  8. package/dist/compiler.d.ts +0 -76
  9. package/dist/compiler.js +0 -361
  10. package/dist/compilerCP.d.ts +0 -1
  11. package/dist/compilerCP.js +0 -175
  12. package/dist/config/constant.config.d.ts +0 -7
  13. package/dist/config/constant.config.js +0 -10
  14. package/dist/dev-server/index.d.ts +0 -3
  15. package/dist/dev-server/index.js +0 -64
  16. package/dist/dev-server/lib/ensurePort.d.ts +0 -2
  17. package/dist/dev-server/lib/ensurePort.js +0 -32
  18. package/dist/dev-server/lib/openBrowser.d.ts +0 -2
  19. package/dist/dev-server/lib/openBrowser.js +0 -23
  20. package/dist/dev-server/lib/openChrome.applescript +0 -78
  21. package/dist/index.d.ts +0 -1
  22. package/dist/index.js +0 -5
  23. package/dist/packs/index.d.ts +0 -14
  24. package/dist/packs/index.js +0 -31
  25. package/dist/packs/mp-pack/index.d.ts +0 -3
  26. package/dist/packs/mp-pack/index.js +0 -32
  27. package/dist/packs/webpack/index.d.ts +0 -3
  28. package/dist/packs/webpack/index.js +0 -92
  29. package/dist/packs/webpack/webpack.d.ts +0 -21
  30. package/dist/packs/webpack/webpack.js +0 -79
  31. package/dist/presets/babel.d.ts +0 -8
  32. package/dist/presets/babel.js +0 -59
  33. package/dist/presets/common.d.ts +0 -4
  34. package/dist/presets/common.js +0 -46
  35. package/dist/presets/configs/minigame/assets/assetsEntryPlugin.d.ts +0 -10
  36. package/dist/presets/configs/minigame/assets/assetsEntryPlugin.js +0 -46
  37. package/dist/presets/configs/minigame/assets/index.d.ts +0 -2
  38. package/dist/presets/configs/minigame/assets/index.js +0 -65
  39. package/dist/presets/configs/minigame/service/index.d.ts +0 -3
  40. package/dist/presets/configs/minigame/service/index.js +0 -34
  41. package/dist/presets/configs/minigame/service/resolveLimitPlugin.d.ts +0 -8
  42. package/dist/presets/configs/minigame/service/resolveLimitPlugin.js +0 -35
  43. package/dist/presets/configs/minigame/service/serviceChunkPlugin.d.ts +0 -9
  44. package/dist/presets/configs/minigame/service/serviceChunkPlugin.js +0 -69
  45. package/dist/presets/configs/minigame/service/serviceEntryPlugin.d.ts +0 -10
  46. package/dist/presets/configs/minigame/service/serviceEntryPlugin.js +0 -32
  47. package/dist/presets/configs/miniprogram/assets/assetsEntryPlugin.d.ts +0 -12
  48. package/dist/presets/configs/miniprogram/assets/assetsEntryPlugin.js +0 -132
  49. package/dist/presets/configs/miniprogram/assets/index.d.ts +0 -4
  50. package/dist/presets/configs/miniprogram/assets/index.js +0 -47
  51. package/dist/presets/configs/miniprogram/render/component.d.ts +0 -3
  52. package/dist/presets/configs/miniprogram/render/component.js +0 -47
  53. package/dist/presets/configs/miniprogram/render/index.d.ts +0 -5
  54. package/dist/presets/configs/miniprogram/render/index.js +0 -70
  55. package/dist/presets/configs/miniprogram/render/render.d.ts +0 -3
  56. package/dist/presets/configs/miniprogram/render/render.js +0 -49
  57. package/dist/presets/configs/miniprogram/render/renderChunkPlugin.d.ts +0 -8
  58. package/dist/presets/configs/miniprogram/render/renderChunkPlugin.js +0 -55
  59. package/dist/presets/configs/miniprogram/render/sjsEntryPlugin.d.ts +0 -15
  60. package/dist/presets/configs/miniprogram/render/sjsEntryPlugin.js +0 -163
  61. package/dist/presets/configs/miniprogram/service/index.d.ts +0 -5
  62. package/dist/presets/configs/miniprogram/service/index.js +0 -72
  63. package/dist/presets/configs/miniprogram/service/resolveLimitPlugin.d.ts +0 -8
  64. package/dist/presets/configs/miniprogram/service/resolveLimitPlugin.js +0 -66
  65. package/dist/presets/configs/miniprogram/service/serviceChunkPlugin.d.ts +0 -9
  66. package/dist/presets/configs/miniprogram/service/serviceChunkPlugin.js +0 -65
  67. package/dist/presets/index.d.ts +0 -2
  68. package/dist/presets/index.js +0 -95
  69. package/dist/presets/loaders/mg-entry-loader.d.ts +0 -1
  70. package/dist/presets/loaders/mg-entry-loader.js +0 -27
  71. package/dist/presets/loaders/mini-style-loader.d.ts +0 -1
  72. package/dist/presets/loaders/mini-style-loader.js +0 -72
  73. package/dist/presets/loaders/mp-entry-loader.d.ts +0 -1
  74. package/dist/presets/loaders/mp-entry-loader.js +0 -196
  75. package/dist/presets/loaders/sjs-loader/index.d.ts +0 -12
  76. package/dist/presets/loaders/sjs-loader/index.js +0 -605
  77. package/dist/presets/loaders/sjs-loader/scope.d.ts +0 -36
  78. package/dist/presets/loaders/sjs-loader/scope.js +0 -122
  79. package/dist/presets/loaders/sjs-loader/tranform.d.ts +0 -2
  80. package/dist/presets/loaders/sjs-loader/tranform.js +0 -31
  81. package/dist/presets/loaders/wxss-loader.d.ts +0 -1
  82. package/dist/presets/loaders/wxss-loader.js +0 -77
  83. package/dist/presets/plugins/InjectorPlugin.d.ts +0 -7
  84. package/dist/presets/plugins/InjectorPlugin.js +0 -14
  85. package/dist/presets/prod.d.ts +0 -4
  86. package/dist/presets/prod.js +0 -80
  87. package/dist/types/index.d.ts +0 -118
  88. package/dist/types/index.js +0 -13
  89. package/dist/utils/asyncWebpack.d.ts +0 -3
  90. package/dist/utils/asyncWebpack.js +0 -38
  91. package/dist/utils/common.d.ts +0 -8
  92. package/dist/utils/common.js +0 -36
  93. package/dist/utils/const.d.ts +0 -27
  94. package/dist/utils/const.js +0 -47
  95. package/dist/utils/css.d.ts +0 -2
  96. package/dist/utils/css.js +0 -41
  97. package/dist/utils/depenedHelper.d.ts +0 -31
  98. package/dist/utils/depenedHelper.js +0 -89
  99. package/dist/utils/getSuffixName.d.ts +0 -3
  100. package/dist/utils/getSuffixName.js +0 -18
  101. package/dist/utils/loader-utils.d.ts +0 -15
  102. package/dist/utils/loader-utils.js +0 -59
  103. package/dist/utils/postcssRpx2Vw.d.ts +0 -12
  104. package/dist/utils/postcssRpx2Vw.js +0 -35
  105. package/dist/utils/projectConfig.d.ts +0 -1
  106. package/dist/utils/projectConfig.js +0 -20
  107. package/dist/utils/tagTransformMap.d.ts +0 -35
  108. package/dist/utils/tagTransformMap.js +0 -38
  109. package/dist/utils/utils.d.ts +0 -5
  110. package/dist/utils/utils.js +0 -37
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.WebPack = void 0;
13
- const xhs_mp_pack_1 = require("xhs-mp-pack");
14
- const webpack_1 = require("webpack");
15
- const watchOptions = {
16
- aggregateTimeout: 300,
17
- poll: false,
18
- ignored: ['**/node_modules', 'project.config.json', 'project.private.config.json']
19
- };
20
- // 对webpack进行一层包装,和mp-pack对齐
21
- class WebPack extends xhs_mp_pack_1.AbstractMPPack {
22
- constructor(configs, options) {
23
- super();
24
- this.callbacks = [];
25
- this.compiler = null;
26
- this.watcher = null;
27
- this.hadWatch = false;
28
- this.handleProgress = progress => {
29
- this.emit('progress', progress);
30
- };
31
- this.project = options.project;
32
- this.packSetting = options.packSetting;
33
- this.compiler = (0, webpack_1.webpack)(configs);
34
- new webpack_1.ProgressPlugin(this.handleProgress).apply(this.compiler);
35
- }
36
- get hooks() {
37
- return this.compiler.hooks;
38
- }
39
- watch(config, callback) {
40
- return new Promise(resolve => {
41
- if (this.watcher) {
42
- this.watcher.close(() => { });
43
- this.watcher = null;
44
- }
45
- if (config.scene === 'reWatch') {
46
- this.hadWatch = false;
47
- }
48
- this.watcher = this.compiler.watch(Object.assign(Object.assign({}, watchOptions), config), (err, stats) => {
49
- if (!this.hadWatch) {
50
- this.hadWatch = true;
51
- resolve({
52
- err, stats
53
- });
54
- }
55
- else {
56
- callback === null || callback === void 0 ? void 0 : callback(err, stats);
57
- }
58
- });
59
- });
60
- }
61
- changeCompileOptions(config) {
62
- // 空实现
63
- }
64
- activatePkgs(compilePkgs) {
65
- // 空实现
66
- }
67
- reCompilePkgs(config, callback) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- // 空实现
70
- });
71
- }
72
- build(callback) {
73
- this.compiler.run(callback);
74
- }
75
- close(callback) {
76
- this.compiler.close(callback);
77
- }
78
- }
79
- exports.WebPack = WebPack;
@@ -1,8 +0,0 @@
1
- import { Config } from '../packs';
2
- import { IPresetOptions } from '../types';
3
- /**
4
- * babel 仅关注语法转换,polyfill 在 js-core 中已经内置
5
- * 目前 polyfill 仅支持到 'ios_saf >= 10', 'chrome >= 83'。语法构建中,会默认支持。
6
- */
7
- declare const getBaseConfig: (chain: Config, options: IPresetOptions) => void;
8
- export default getBaseConfig;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const const_1 = __importDefault(require("../utils/const"));
7
- const types_1 = require("../types");
8
- /**
9
- * babel 仅关注语法转换,polyfill 在 js-core 中已经内置
10
- * 目前 polyfill 仅支持到 'ios_saf >= 10', 'chrome >= 83'。语法构建中,会默认支持。
11
- */
12
- const getBaseConfig = (chain, options) => {
13
- const { packSetting } = options;
14
- const { env, tsConfigPath } = packSetting;
15
- const swcTargets = env === types_1.ENV.development ? const_1.default.DEV_TARGETS : const_1.default.PROD_TARGETS;
16
- chain.module
17
- .rule('js')
18
- .test(/\.js$/)
19
- .exclude.add(/node_modules/)
20
- .end()
21
- .use('js-loader')
22
- .loader(require.resolve('swc-loader'))
23
- .options({
24
- jsc: { externalHelpers: true },
25
- env: {
26
- targets: swcTargets,
27
- coreJS: 3
28
- }
29
- });
30
- chain.module
31
- .rule('ts')
32
- .test(/\.ts$/)
33
- .exclude.add(/node_modules/)
34
- .end()
35
- .use('ts-loader')
36
- .loader(require.resolve('swc-loader'))
37
- .options({
38
- jsc: {
39
- externalHelpers: true,
40
- parser: { syntax: 'typescript' }
41
- },
42
- env: {
43
- targets: swcTargets,
44
- coreJS: 3
45
- }
46
- });
47
- if (tsConfigPath) {
48
- chain.resolve.extensions.add('.ts');
49
- chain.plugin('ts-checker').use(require.resolve('fork-ts-checker-webpack-plugin'), [
50
- {
51
- async: true,
52
- typescript: {
53
- configFile: tsConfigPath
54
- }
55
- }
56
- ]);
57
- }
58
- };
59
- exports.default = getBaseConfig;
@@ -1,4 +0,0 @@
1
- import { Config } from '../packs';
2
- import { IPresetOptions } from '../types';
3
- declare const presetCommon: (chain: Config, options: IPresetOptions) => void;
4
- export default presetCommon;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const types_1 = require("../types");
8
- const presetCommon = (chain, options) => {
9
- const { packSetting, project } = options;
10
- const { env, watch, enableSourcemap, cacheDirectory } = packSetting;
11
- chain.merge({
12
- stats: 'errors-only',
13
- output: {
14
- pathinfo: false,
15
- },
16
- resolve: {
17
- roots: [project.miniprogramDir],
18
- extensions: ['.js'],
19
- modules: [
20
- path_1.default.join(project.projectPath, 'node_modules'),
21
- project.projectPath,
22
- path_1.default.join(__dirname, '../../node_modules/')
23
- ],
24
- },
25
- resolveLoader: {
26
- modules: [path_1.default.join(__dirname, './loaders')],
27
- extensions: ['.js', '.ts'],
28
- },
29
- });
30
- chain.watch(!!watch);
31
- chain.mode('development');
32
- chain.devtool(enableSourcemap ? 'source-map' : false);
33
- // @ts-ignore
34
- chain.target(['web', 'es5']);
35
- chain.cache(env === types_1.ENV.production
36
- ? false
37
- : {
38
- type: 'filesystem',
39
- cacheDirectory: cacheDirectory || path_1.default.join(__dirname, '../../node_modules/.cache'),
40
- version: project.miniprogramDir,
41
- buildDependencies: {
42
- config: [path_1.default.join(project.miniprogramDir, 'app.json')],
43
- },
44
- });
45
- };
46
- exports.default = presetCommon;
@@ -1,10 +0,0 @@
1
- import { ICompiler } from '../../../../packs';
2
- import { IPresetOptions } from '../../../../types';
3
- declare class MpEntryPlugin {
4
- options: IPresetOptions;
5
- constructor(options: IPresetOptions);
6
- apply(compiler: ICompiler): void;
7
- getAppJson(appJSON: any): Record<string, RawSource>;
8
- getLegacyAppJSON(appJSON: any): any;
9
- }
10
- export default MpEntryPlugin;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const packs_1 = require("../../../../packs");
4
- const lodash_1 = require("lodash");
5
- const common_1 = require("../../../../utils/common");
6
- const xhs_mp_project_1 = require("xhs-mp-project");
7
- class MpEntryPlugin {
8
- constructor(options) {
9
- this.options = options;
10
- }
11
- apply(compiler) {
12
- // 在资源优化阶段处理app.json
13
- compiler.hooks.compilation.tap(MpEntryPlugin.name, compilation => {
14
- // @ts-ignore
15
- compilation.hooks.processAssets.tap({
16
- name: MpEntryPlugin.name,
17
- stage: packs_1.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY, // see below for more stages
18
- }, (assets) => {
19
- // @ts-ignore
20
- const { appJSON } = this.options.project;
21
- if (assets) {
22
- Object.assign(assets, this.getAppJson((0, lodash_1.cloneDeep)(appJSON)));
23
- // 兼容服务端,始终创建 v0/app.json
24
- assets['v0/app.json'] = this.getLegacyAppJSON((0, lodash_1.cloneDeep)(appJSON));
25
- }
26
- });
27
- });
28
- }
29
- getAppJson(appJSON) {
30
- const assets = {};
31
- const appJsonSource = new packs_1.RawSource(JSON.stringify(xhs_mp_project_1.utils.pureAppJSON(appJSON)));
32
- assets['v1/app.json'] = appJsonSource;
33
- for (const subpackage of appJSON.subPackages) {
34
- if (subpackage.independent) {
35
- assets[(0, common_1.unixJoin)("v1", subpackage.dirname, "app.json")] = appJsonSource;
36
- }
37
- }
38
- return assets;
39
- }
40
- getLegacyAppJSON(appJSON) {
41
- // 兼容的整包,将 subPackages 合并到 pages 内
42
- appJSON = xhs_mp_project_1.utils.pureAppJSON(appJSON, 'v0');
43
- return new packs_1.RawSource(JSON.stringify(appJSON));
44
- }
45
- }
46
- exports.default = MpEntryPlugin;
@@ -1,2 +0,0 @@
1
- import { IPresetOptions } from '../../../../types';
2
- export declare const presetAssets: (chain: Config, options: IPresetOptions) => void;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.presetAssets = void 0;
16
- const path_1 = __importDefault(require("path"));
17
- const assetsEntryPlugin_1 = __importDefault(require("./assetsEntryPlugin"));
18
- const copy_webpack_plugin_1 = __importDefault(require("copy-webpack-plugin"));
19
- const const_1 = __importDefault(require("../../../../utils/const"));
20
- const InjectorPlugin_1 = require("../../../plugins/InjectorPlugin");
21
- const ASSETS_EXTS = const_1.default.ASSETS_EXTS
22
- .map(i => `.${i}`);
23
- const presetAssets = (chain, options) => {
24
- const { packSetting, project } = options;
25
- const { distDir } = packSetting;
26
- chain.merge({
27
- output: {
28
- path: distDir,
29
- },
30
- });
31
- const projectJsons = [
32
- 'game.json',
33
- 'package.json',
34
- 'package-lock.json',
35
- 'pkgInfo.json',
36
- 'project.config.json',
37
- 'project.private.config.json',
38
- ].map(i => path_1.default.resolve(project.projectPath, i));
39
- const copyPatterns = [
40
- {
41
- noErrorOnMissing: true,
42
- from: `${project.projectPath}/**/*`,
43
- filter: (resourcePath) => __awaiter(void 0, void 0, void 0, function* () {
44
- if (resourcePath.includes('node_modules')) {
45
- return false;
46
- }
47
- const extname = path_1.default.extname(resourcePath);
48
- if (ASSETS_EXTS.includes(extname)) {
49
- return true;
50
- }
51
- if (extname === '.json' && !projectJsons.includes(resourcePath)) {
52
- return true;
53
- }
54
- return false;
55
- }),
56
- to: 'v1',
57
- context: project.projectPath,
58
- globOptions: { gitignore: true },
59
- },
60
- ];
61
- chain.plugin('InjectorPlugin').use(InjectorPlugin_1.InjectorPlugin, [options]);
62
- chain.plugin('CopyPlugin').use(copy_webpack_plugin_1.default, [{ patterns: copyPatterns }]);
63
- chain.plugin('AssetsEntryPlugin').use(assetsEntryPlugin_1.default, [options]);
64
- };
65
- exports.presetAssets = presetAssets;
@@ -1,3 +0,0 @@
1
- import { Config } from '../../../../packs';
2
- import { IPresetOptions } from '../../../../types';
3
- export declare const presetService: (chain: Config, options: IPresetOptions) => void;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.presetService = void 0;
7
- const serviceEntryPlugin_1 = __importDefault(require("./serviceEntryPlugin"));
8
- const serviceChunkPlugin_1 = __importDefault(require("./serviceChunkPlugin"));
9
- const resolveLimitPlugin_1 = __importDefault(require("./resolveLimitPlugin"));
10
- const InjectorPlugin_1 = require("../../../plugins/InjectorPlugin");
11
- const presetService = (chain, options) => {
12
- const { packSetting } = options;
13
- const { distDir } = packSetting;
14
- chain.merge({
15
- output: {
16
- path: distDir,
17
- globalObject: 'globalThis'
18
- }
19
- });
20
- chain.plugin('InjectorPlugin').use(InjectorPlugin_1.InjectorPlugin, [options]);
21
- chain.plugin('ServiceEntryPlugin').use(serviceEntryPlugin_1.default, [options]);
22
- chain.plugin('ServiceChunkPlugin').use(serviceChunkPlugin_1.default, [options]);
23
- chain.resolve.plugin('ResolveLimitPlugin').use(resolveLimitPlugin_1.default, [options]);
24
- chain.optimization
25
- .runtimeChunk({
26
- name: 'runtime'
27
- })
28
- .splitChunks({
29
- chunks: chunk => !chunk.name.startsWith('v0/'),
30
- minSize: 0,
31
- name: 'service-common'
32
- });
33
- };
34
- exports.presetService = presetService;
@@ -1,8 +0,0 @@
1
- import { Resolver } from 'enhanced-resolve';
2
- import { IPresetOptions } from '../../../../types';
3
- declare class XhsResolveLimitPlugin {
4
- options: IPresetOptions;
5
- constructor(options: IPresetOptions);
6
- apply(resolver: Resolver): void;
7
- }
8
- export default XhsResolveLimitPlugin;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const fs_extra_1 = require("fs-extra");
13
- class XhsResolveLimitPlugin {
14
- constructor(options) {
15
- this.options = options;
16
- }
17
- apply(resolver) {
18
- const target1 = resolver.ensureHook("resolve");
19
- resolver.getHook('file')
20
- .tapAsync('XhsResolveLimitPlugin', (request, contextResolver, callback) => __awaiter(this, void 0, void 0, function* () {
21
- var _a;
22
- // @ts-ignore
23
- const issuer = ((_a = request.context) === null || _a === void 0 ? void 0 : _a.issuer) || '';
24
- const target = request.path || '';
25
- if ((target.includes('node_modules') && (0, fs_extra_1.existsSync)(target))) {
26
- return callback();
27
- }
28
- // console.log(`issuer: ${issuer}`, `target: ${target}`)
29
- // return resolver.doResolve(target1, request, null, contextResolver, callback);
30
- // console.log(issuer, target)
31
- return callback();
32
- }));
33
- }
34
- }
35
- exports.default = XhsResolveLimitPlugin;
@@ -1,9 +0,0 @@
1
- import { Compiler } from 'webpack';
2
- import { IPresetOptions } from '../../../../types';
3
- declare class ServiceChunkPlugin {
4
- options: IPresetOptions;
5
- constructor(options: IPresetOptions);
6
- apply(compiler: Compiler): void;
7
- updateService(compiler: any, compilation: any, runtimeCode: any, commonSource: any): void;
8
- }
9
- export default ServiceChunkPlugin;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const webpack_1 = require("webpack");
4
- const webpack_sources_1 = require("webpack-sources");
5
- const common_1 = require("../../../../utils/common");
6
- class ServiceChunkPlugin {
7
- constructor(options) {
8
- this.options = options;
9
- }
10
- apply(compiler) {
11
- compiler.hooks.compilation.tap('ServiceChunkPlugin', compilation => {
12
- compilation.hooks.processAssets.tap({
13
- name: 'ServiceChunkPlugin',
14
- stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,
15
- }, () => {
16
- var _a, _b;
17
- let runtimeCode = (_a = compilation.getAsset('runtime.js')) === null || _a === void 0 ? void 0 : _a.source.source();
18
- // 当没有引用相同 js 场景时, commonChunk 将是 undefined
19
- const commonSource = ((_b = compilation.getAsset('service-common.js')) === null || _b === void 0 ? void 0 : _b.source) || '';
20
- runtimeCode = `
21
- if (!globalThis.__XHS_RUNTIME_REGISTERED__) {
22
- globalThis.__XHS_RUNTIME_REGISTERED__ = true;
23
- ${runtimeCode}
24
- }`;
25
- this.updateService(compiler, compilation, runtimeCode, commonSource);
26
- compilation.deleteAsset('runtime.js');
27
- compilation.deleteAsset('service-common.js');
28
- });
29
- compilation.hooks.processAssets.tap({
30
- name: 'ServiceChunkPlugin1',
31
- stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE,
32
- }, (assets) => {
33
- var _a;
34
- const { project } = this.options;
35
- // service层注入gameGlobal
36
- const services = [
37
- "v1/service.js",
38
- // @ts-ignore
39
- ...(_a = project.appJSON.subPackages) === null || _a === void 0 ? void 0 : _a.map(i => (0, common_1.unixJoin)('v1', `${i.entry}.js`))
40
- ];
41
- services.forEach(servicePath => {
42
- if (servicePath in assets) {
43
- // @ts-ignore
44
- compilation.updateAsset(servicePath, new webpack_sources_1.ConcatSource(`with(GameGlobal) {\n"use strict";\n`, assets[servicePath], '\n}'));
45
- }
46
- });
47
- });
48
- });
49
- }
50
- updateService(compiler, compilation, runtimeCode, commonSource) {
51
- var _a;
52
- const { project } = this.options;
53
- // 独立分包
54
- const independent = (_a = project.appJSON.subPackages) === null || _a === void 0 ? void 0 : _a.filter(sub => sub.independent);
55
- const services = [
56
- "v1/service.js",
57
- ...independent === null || independent === void 0 ? void 0 : independent.map(i => (0, common_1.unixJoin)('v1', `${i.entry}.js`))
58
- ];
59
- services.forEach(servicePath => {
60
- var _a;
61
- const serviceCode = (_a = compilation.getAsset(servicePath)) === null || _a === void 0 ? void 0 : _a.source;
62
- if (serviceCode) {
63
- // @ts-ignore
64
- compilation.updateAsset(servicePath, new webpack_sources_1.ConcatSource(runtimeCode, commonSource, serviceCode));
65
- }
66
- });
67
- }
68
- }
69
- exports.default = ServiceChunkPlugin;
@@ -1,10 +0,0 @@
1
- import { Compiler } from 'webpack';
2
- import { IPresetOptions } from '../../../../types';
3
- declare class ServiceEntryPlugin {
4
- entriesCache: Map<string, boolean>;
5
- options: IPresetOptions;
6
- constructor(options: IPresetOptions);
7
- apply(compiler: Compiler): void;
8
- makeUmdEntry(compiler: Compiler, filename: string, url: string, libraryName: string): void;
9
- }
10
- export default ServiceEntryPlugin;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const webpack_1 = require("webpack");
4
- const common_1 = require("../../../../utils/common");
5
- class ServiceEntryPlugin {
6
- constructor(options) {
7
- this.options = options;
8
- this.entriesCache = new Map();
9
- }
10
- apply(compiler) {
11
- new webpack_1.library.EnableLibraryPlugin('umd').apply(compiler);
12
- const { project } = this.options;
13
- const { appJSON } = project;
14
- const subPackages = appJSON.subPackages || [];
15
- this.makeUmdEntry(compiler, 'v1/service.js', `mg-entry-loader?entry=${common_1.DEFAULT_ENTRY}!`, `XHS_SERVICE_${common_1.DEFAULT_ENTRY}`);
16
- for (const { entry } of subPackages) {
17
- this.makeUmdEntry(compiler, (0, common_1.unixJoin)('v1', `${entry}.js`), `mg-entry-loader?entry=${entry}!`, `XHS_SERVICE_${entry}`);
18
- }
19
- }
20
- makeUmdEntry(compiler, filename, url, libraryName) {
21
- if (this.entriesCache.get(filename))
22
- return;
23
- const entryOption = webpack_1.EntryOptionPlugin.entryDescriptionToOptions(compiler, filename, {
24
- import: [url],
25
- filename,
26
- library: { name: libraryName, type: 'umd' }
27
- });
28
- new webpack_1.EntryPlugin(compiler.context, url, entryOption).apply(compiler);
29
- this.entriesCache.set(filename, true);
30
- }
31
- }
32
- exports.default = ServiceEntryPlugin;
@@ -1,12 +0,0 @@
1
- import { IPresetOptions } from '../../../../types';
2
- import { RawSource, CopyPatterns, ICompiler } from '../../../../packs';
3
- declare class XhsAssetsPlugin {
4
- options: IPresetOptions;
5
- copyPatterns: CopyPatterns;
6
- constructor(options: IPresetOptions);
7
- apply(compiler: ICompiler): void;
8
- emitAppJson(compilation: any, appJSON: any): void;
9
- emitLegacyAppJSON(compilation: any, legacyAppJSON: any): void;
10
- emitJson(compilation: any, path: string, json: RawSource): void;
11
- }
12
- export default XhsAssetsPlugin;