xhs-mp-compiler-cli 2.0.0-beta.4 → 2.0.1

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 (94) hide show
  1. package/dist/bin/xhs-mp-cli-build.js +48 -34
  2. package/dist/bin/xhs-mp-cli-dev.js +44 -44
  3. package/dist/bin/xhs-mp-cli.js +22 -12
  4. package/dist/compiler.d.ts +21 -28
  5. package/dist/compiler.js +327 -327
  6. package/dist/compilerImpl.d.ts +19 -0
  7. package/dist/compilerImpl.js +173 -0
  8. package/dist/config/constant.config.d.ts +24 -0
  9. package/dist/config/constant.config.js +82 -30
  10. package/dist/config/dir.config.js +23 -13
  11. package/dist/index.d.ts +9 -9
  12. package/dist/index.js +454 -408
  13. package/dist/packs/index.d.ts +4 -4
  14. package/dist/packs/index.js +38 -30
  15. package/dist/packs/mp-pack/index.js +38 -30
  16. package/dist/packs/webpack/dev-server/index.js +61 -50
  17. package/dist/packs/webpack/dev-server/lib/ensurePort.js +33 -23
  18. package/dist/packs/webpack/dev-server/lib/openBrowser.js +28 -18
  19. package/dist/packs/webpack/index.d.ts +1 -1
  20. package/dist/packs/webpack/index.js +99 -90
  21. package/dist/packs/webpack/webpack.d.ts +2 -1
  22. package/dist/packs/webpack/webpack.js +81 -63
  23. package/dist/presets/babel.d.ts +0 -1
  24. package/dist/presets/babel.js +64 -58
  25. package/dist/presets/common.js +42 -45
  26. package/dist/presets/configs/minigame/assets/assetsEntryPlugin.js +50 -40
  27. package/dist/presets/configs/minigame/assets/index.js +62 -52
  28. package/dist/presets/configs/minigame/service/index.js +49 -30
  29. package/dist/presets/configs/minigame/service/resolveLimitPlugin.js +33 -23
  30. package/dist/presets/configs/minigame/service/serviceChunkPlugin.d.ts +2 -2
  31. package/dist/presets/configs/minigame/service/serviceChunkPlugin.js +69 -60
  32. package/dist/presets/configs/minigame/service/serviceEntryPlugin.d.ts +3 -3
  33. package/dist/presets/configs/minigame/service/serviceEntryPlugin.js +39 -29
  34. package/dist/presets/configs/miniprogram/assets/assetsEntryPlugin.js +120 -113
  35. package/dist/presets/configs/miniprogram/assets/index.js +45 -43
  36. package/dist/presets/configs/miniprogram/render/component.js +51 -41
  37. package/dist/presets/configs/miniprogram/render/index.d.ts +2 -3
  38. package/dist/presets/configs/miniprogram/render/index.js +85 -68
  39. package/dist/presets/configs/miniprogram/render/render.js +53 -43
  40. package/dist/presets/configs/miniprogram/render/renderChunkPlugin.js +84 -49
  41. package/dist/presets/configs/miniprogram/render/sjsEntryPlugin.d.ts +15 -0
  42. package/dist/presets/configs/miniprogram/render/sjsEntryPlugin.js +164 -126
  43. package/dist/presets/configs/miniprogram/service/index.js +82 -65
  44. package/dist/presets/configs/miniprogram/service/resolveLimitPlugin.js +60 -50
  45. package/dist/presets/configs/miniprogram/service/serviceChunkPlugin.js +93 -55
  46. package/dist/presets/index.js +100 -90
  47. package/dist/presets/loaders/mg-entry-loader.js +32 -22
  48. package/dist/presets/loaders/mini-style-loader.js +79 -55
  49. package/dist/presets/loaders/mp-entry-loader.js +149 -140
  50. package/dist/presets/loaders/wxss-loader.js +73 -63
  51. package/dist/presets/plugins/InjectorPlugin.js +23 -13
  52. package/dist/presets/plugins/SourceMapDevToolPlugin.d.ts +1 -0
  53. package/dist/presets/plugins/SourceMapDevToolPlugin.js +23 -0
  54. package/dist/presets/prod.js +88 -78
  55. package/dist/sharedFs.d.ts +2 -0
  56. package/dist/sharedFs.js +24 -0
  57. package/dist/types/index.d.ts +11 -37
  58. package/dist/types/index.js +23 -13
  59. package/dist/utils/{apm/index.d.ts → apm.d.ts} +5 -3
  60. package/dist/utils/apm.js +245 -0
  61. package/dist/utils/cache.d.ts +28 -0
  62. package/dist/utils/cache.js +49 -0
  63. package/dist/utils/common.js +42 -32
  64. package/dist/utils/css.d.ts +1 -1
  65. package/dist/utils/css.js +43 -35
  66. package/dist/utils/depenedHelper.js +95 -85
  67. package/dist/utils/file.js +39 -29
  68. package/dist/utils/loader-utils.js +63 -53
  69. package/dist/utils/postcssRpx2Vw.js +43 -33
  70. package/dist/utils/project.d.ts +3 -2
  71. package/dist/utils/project.js +129 -119
  72. package/dist/utils/projectConfig.js +24 -15
  73. package/dist/utils/utils.js +51 -42
  74. package/dist/utils/workerPool.d.ts +29 -0
  75. package/dist/utils/workerPool.js +125 -0
  76. package/dist/utils/zip.js +239 -229
  77. package/package.json +33 -14
  78. package/dist/compilerCP.d.ts +0 -1
  79. package/dist/compilerCP.js +0 -175
  80. package/dist/presets/loaders/sjs-loader/index.d.ts +0 -12
  81. package/dist/presets/loaders/sjs-loader/index.js +0 -605
  82. package/dist/presets/loaders/sjs-loader/scope.d.ts +0 -36
  83. package/dist/presets/loaders/sjs-loader/scope.js +0 -122
  84. package/dist/presets/loaders/sjs-loader/tranform.d.ts +0 -2
  85. package/dist/presets/loaders/sjs-loader/tranform.js +0 -31
  86. package/dist/utils/apm/index.js +0 -198
  87. package/dist/utils/asyncWebpack.d.ts +0 -3
  88. package/dist/utils/asyncWebpack.js +0 -38
  89. package/dist/utils/const.d.ts +0 -27
  90. package/dist/utils/const.js +0 -47
  91. package/dist/utils/getSuffixName.d.ts +0 -3
  92. package/dist/utils/getSuffixName.js +0 -18
  93. package/dist/utils/tagTransformMap.d.ts +0 -36
  94. package/dist/utils/tagTransformMap.js +0 -39
@@ -1,40 +1,54 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const path_1 = __importDefault(require("path"));
9
- const packs_1 = require("../packs");
10
- const commander = new commander_1.Command();
11
- commander.usage('[options]').option('-d, --mpDir <path>', 'set workdir [default: ./]');
12
- commander.usage('[options]').option('-p, --platform <string>', 'set platform [default: xhs]');
13
- commander.usage('[options]').option('-l, --lite <string>', '轻量编译器');
14
- commander.usage('[options]').option('-c, --compressJs <boolean>', 'compressJs');
15
- commander.usage('[options]').option('-v1, --enableV1 <boolean>', 'package v1');
16
- commander.usage('[options]').option('-v2, --enableV2 <boolean>', 'package v2');
17
- commander.usage('[options]').option('-vdom, --enableVDom <boolean>', 'vdom 架构支持');
18
- commander.parse(process.argv);
19
- const projectPath = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
20
- const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
21
- const enableV1 = commander.opts().enableV1 === "true";
22
- const enableV2 = commander.opts().enableV2 === "true";
23
- const enableVDom = commander.opts().enableVDom === "true";
24
- const compressJs = commander.opts().compressJs === "true";
25
- const multiCompiler = (0, packs_1.createCompiler)({
26
- projectPath,
27
- action: 'build',
28
- platform,
29
- compressJs,
30
- enableSourcemap: false,
31
- enableV1,
32
- enableV2,
33
- enableVDom,
34
- });
35
- multiCompiler.run((err, stats) => {
36
- console.log(stats.toString({ warnings: true, errors: true, all: false }));
37
- multiCompiler.close(() => {
38
- // noop
5
+ (function (factory) {
6
+ if (typeof module === "object" && typeof module.exports === "object") {
7
+ var v = factory(require, exports);
8
+ if (v !== undefined) module.exports = v;
9
+ }
10
+ else if (typeof define === "function" && define.amd) {
11
+ define(["require", "exports", "commander", "path", "../packs"], factory);
12
+ }
13
+ })(function (require, exports) {
14
+ "use strict";
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const commander_1 = require("commander");
17
+ const path_1 = __importDefault(require("path"));
18
+ const packs_1 = require("../packs");
19
+ const commander = new commander_1.Command();
20
+ commander.usage('[options]').option('-d, --mpDir <path>', 'set workdir [default: ./]');
21
+ commander.usage('[options]').option('-p, --platform <string>', 'set platform [default: xhs]');
22
+ commander.usage('[options]').option('-l, --lite <string>', '轻量编译器');
23
+ commander.usage('[options]').option('-c, --compressJs <boolean>', 'compressJs');
24
+ commander.usage('[options]').option('-v1, --enableV1 <boolean>', 'package v1');
25
+ commander.usage('[options]').option('-v2, --enableV2 <boolean>', 'package v2');
26
+ commander.usage('[options]').option('-vdom, --enableVDom <boolean>', 'vdom 架构支持');
27
+ commander.parse(process.argv);
28
+ const projectPath = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
29
+ const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
30
+ const enableV1 = commander.opts().enableV1 === "true";
31
+ const enableV2 = commander.opts().enableV2 === "true";
32
+ const enableVDom = commander.opts().enableVDom === "true";
33
+ const compressJs = commander.opts().compressJs === "true";
34
+ const projectPacker = (0, packs_1.createPacker)({
35
+ projectPath,
36
+ action: 'build',
37
+ platform,
38
+ compressJs,
39
+ enableSourcemap: false,
40
+ enableV1,
41
+ enableV2,
42
+ enableVDom,
43
+ packMode: 'webpack',
44
+ });
45
+ projectPacker.on('buildInfo', data => {
46
+ if (data.resource) {
47
+ console.log(`资源编译:${data.resource}`);
48
+ }
49
+ });
50
+ projectPacker.build((err, stats) => {
51
+ console.log('编译完成');
52
+ console.log(stats.toString({ warnings: true, errors: true, all: false }));
39
53
  });
40
54
  });
@@ -1,50 +1,39 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const path_1 = __importDefault(require("path"));
9
- const packs_1 = require("../packs");
10
- const commander = new commander_1.Command();
11
- commander.usage('[options]').option('-d, --mpDir <path>', 'set workdir [default: ./]');
12
- commander.usage('[options]').option('-p, --platform <string>', 'set platform [default: xhs]');
13
- commander.usage('[options]').option('-P, --port <string>', 'set dev server port [default: 1388]');
14
- commander.usage('[options]').option('-l, --lite <string>', 'lite compiler');
15
- commander.usage('[options]').option('-o, --out <string>', '是否输出内容');
16
- commander.usage('[options]').option('-v1, --enableV1 <boolean>', 'package v1');
17
- commander.usage('[options]').option('-v2, --enableV2 <boolean>', 'package v2');
18
- commander.usage('[options]').option('-vdom, --enableVDom <boolean>', 'vdom 架构支持');
19
- commander.parse(process.argv);
20
- const projectPath = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
21
- const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
22
- const devServerPort = commander.opts().port ? commander.opts().port : 1388;
23
- const out = commander.opts().out === "true";
24
- const enableV1 = commander.opts().enableV1 === "true";
25
- const enableV2 = commander.opts().enableV2 === "true";
26
- const enableVDom = commander.opts().enableVDom === "true";
27
- process.env.PRETTIER_XHSML = "true";
28
- if (out) {
29
- const multiCompiler = (0, packs_1.createCompiler)({
30
- projectPath,
31
- action: 'dev',
32
- platform,
33
- compressJs: false,
34
- enableSourcemap: false,
35
- enableV1,
36
- enableV2,
37
- enableVDom,
38
- });
39
- multiCompiler.run((err, stats) => {
40
- console.log(stats.toString({ warnings: true, errors: true, all: false }));
41
- multiCompiler.close(() => {
42
- // noop
43
- });
44
- });
45
- }
46
- else {
47
- (0, packs_1.createCompiler)({
5
+ (function (factory) {
6
+ if (typeof module === "object" && typeof module.exports === "object") {
7
+ var v = factory(require, exports);
8
+ if (v !== undefined) module.exports = v;
9
+ }
10
+ else if (typeof define === "function" && define.amd) {
11
+ define(["require", "exports", "commander", "path", "../packs"], factory);
12
+ }
13
+ })(function (require, exports) {
14
+ "use strict";
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const commander_1 = require("commander");
17
+ const path_1 = __importDefault(require("path"));
18
+ const packs_1 = require("../packs");
19
+ const commander = new commander_1.Command();
20
+ commander.usage('[options]').option('-d, --mpDir <path>', 'set workdir [default: ./]');
21
+ commander.usage('[options]').option('-p, --platform <string>', 'set platform [default: xhs]');
22
+ commander.usage('[options]').option('-P, --port <string>', 'set dev server port [default: 1388]');
23
+ commander.usage('[options]').option('-l, --lite <string>', 'lite compiler');
24
+ commander.usage('[options]').option('-o, --out <string>', '是否输出内容');
25
+ commander.usage('[options]').option('-v1, --enableV1 <boolean>', 'package v1');
26
+ commander.usage('[options]').option('-v2, --enableV2 <boolean>', 'package v2');
27
+ commander.usage('[options]').option('-vdom, --enableVDom <boolean>', 'vdom 架构支持');
28
+ commander.parse(process.argv);
29
+ const projectPath = commander.opts().mpDir ? path_1.default.resolve(commander.opts().mpDir) : process.cwd();
30
+ const platform = commander.opts().platform ? commander.opts().platform : 'xhs';
31
+ const devServerPort = commander.opts().port ? commander.opts().port : 1388;
32
+ const out = commander.opts().out === "true";
33
+ const enableV1 = commander.opts().enableV1 === "true";
34
+ const enableV2 = commander.opts().enableV2 === "true";
35
+ const enableVDom = commander.opts().enableVDom === "true";
36
+ const projectPacker = (0, packs_1.createPacker)({
48
37
  projectPath,
49
38
  action: 'dev',
50
39
  enableDevServer: true,
@@ -55,5 +44,16 @@ else {
55
44
  enableV1,
56
45
  enableV2,
57
46
  enableVDom,
47
+ packMode: 'webpack',
48
+ });
49
+ projectPacker.on('buildInfo', data => {
50
+ if (data.resource) {
51
+ console.log(`资源编译:${data.resource}`);
52
+ }
53
+ });
54
+ projectPacker.watch({
55
+ scene: 'watch',
56
+ }, (err, stats) => {
57
+ console.log(stats.toString({ warnings: true, errors: true, all: false }));
58
58
  });
59
- }
59
+ });
@@ -1,16 +1,26 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- // @ts-ignore
9
- const package_json_1 = __importDefault(require("../../package.json"));
10
- const commander = new commander_1.Command();
11
- commander
12
- .version(package_json_1.default.version)
13
- .usage('<command> [options]')
14
- .command('dev', '启动开发服务')
15
- .command('build', '打包小程序')
16
- .parse(process.argv);
5
+ (function (factory) {
6
+ if (typeof module === "object" && typeof module.exports === "object") {
7
+ var v = factory(require, exports);
8
+ if (v !== undefined) module.exports = v;
9
+ }
10
+ else if (typeof define === "function" && define.amd) {
11
+ define(["require", "exports", "commander", "../../package.json"], factory);
12
+ }
13
+ })(function (require, exports) {
14
+ "use strict";
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const commander_1 = require("commander");
17
+ // @ts-ignore
18
+ const package_json_1 = __importDefault(require("../../package.json"));
19
+ const commander = new commander_1.Command();
20
+ commander
21
+ .version(package_json_1.default.version)
22
+ .usage('<command> [options]')
23
+ .command('dev', '启动开发服务')
24
+ .command('build', '打包小程序')
25
+ .parse(process.argv);
26
+ });
@@ -1,14 +1,8 @@
1
- /// <reference types="node/child_process" />
2
- /// <reference types=".pnpm/artifactory.devops.xiaohongshu.com+@types+node@20.12.2/node_modules/@types/node/child_process" />
3
- /// <reference types="node/stream" />
4
- /// <reference types=".pnpm/artifactory.devops.xiaohongshu.com+@types+node@20.12.2/node_modules/@types/node/stream" />
5
- /**
6
- * 在子进程执行编译
7
- */
8
- import { ChildProcess } from 'child_process';
9
1
  import { EventEmitter } from 'stream';
10
2
  type Platform = 'wx' | 'xhs';
3
+ type IWorkerType = 'web' | 'process' | 'thread';
11
4
  export interface ICompilerOption {
5
+ packMode: string;
12
6
  projectPath: string;
13
7
  appMode: string;
14
8
  }
@@ -18,37 +12,35 @@ export interface ICompilerArgs {
18
12
  inspectPort?: number;
19
13
  maxSpaceSaze?: number;
20
14
  nodeJsPath?: string;
15
+ workerType?: IWorkerType;
21
16
  }
22
17
  export interface ForkWebpackOption {
23
18
  platform: Platform;
24
- extJsonPath: string;
25
19
  distDir: string;
26
20
  cacheDirectory: string | null;
27
21
  }
28
22
  export interface ICheckOptions {
29
23
  compilePkgs?: string[];
30
- compressJs: boolean;
24
+ compressCss?: boolean;
25
+ compressJs?: boolean;
31
26
  enableV2?: boolean;
32
27
  enableV1?: boolean;
33
28
  }
34
- declare abstract class AbstractCompiler extends EventEmitter {
29
+ export declare abstract class AbstractCompiler extends EventEmitter {
35
30
  protected inspectPort: any;
36
- private _cp;
31
+ protected workerType: IWorkerType;
37
32
  private compilerOpts;
38
- private cpArgs;
39
- private logger;
40
- private _handlerMap;
41
- constructor(opts: ICompilerOption, args?: ICompilerArgs);
42
- get cp(): any;
43
- protected createSp: (passData?: {}) => any;
44
- protected create: (passData?: {}) => ChildProcess;
33
+ protected logger: any;
34
+ protected pool: any;
35
+ constructor(opts: ICompilerOption, args: ICompilerArgs);
36
+ static prepareDevPool(): void;
37
+ static createPool(workerType: any, poolOpts?: {}, processArgs?: {}): any;
38
+ static createProcessOps: (processArgs: any) => any;
45
39
  close(): void;
46
40
  kill(): void;
47
- private handleMessage;
48
- call: (method: any, data: any) => Promise<unknown>;
49
- send: (method: any, data: any) => void;
41
+ call: (method: any, data: any, options?: any) => any;
50
42
  }
51
- declare class MPPackDevCompiler extends AbstractCompiler {
43
+ export declare class MPPackDevCompiler extends AbstractCompiler {
52
44
  private pending;
53
45
  private pendingPkgs;
54
46
  private readyPkgs;
@@ -62,17 +54,18 @@ declare class MPPackDevCompiler extends AbstractCompiler {
62
54
  makePkgsReady(opts: ICheckOptions): Promise<void>;
63
55
  reCompilePkgs(options: any): Promise<void>;
64
56
  }
65
- declare class WebPackDevCompiler extends AbstractCompiler {
57
+ export declare class WebPackDevCompiler extends AbstractCompiler {
66
58
  private watching;
67
59
  private pendingTask?;
68
- constructor(props: any);
60
+ constructor(props: any, args: any);
69
61
  makePkgsReady(opts: any): Promise<unknown>;
70
62
  reCompilePkgs(opts: any): Promise<void>;
71
63
  }
72
- declare class BuildCompiler extends AbstractCompiler {
64
+ export declare class BuildCompiler extends AbstractCompiler {
73
65
  cps: any;
74
66
  constructor(props: any, args: any);
75
- build(option: ICheckOptions): Promise<unknown>;
67
+ build(option: ICheckOptions): Promise<any>;
76
68
  }
77
- export declare function getProcessCompilerClass(compilerType: any): typeof MPPackDevCompiler | typeof WebPackDevCompiler | typeof BuildCompiler;
69
+ export declare function getProjectCompilerClass(compilerType: any): typeof MPPackDevCompiler | typeof WebPackDevCompiler | typeof BuildCompiler;
70
+ export declare const prepareDevPool: typeof AbstractCompiler.prepareDevPool;
78
71
  export {};