@tmsfe/tmskit 0.0.2 → 0.0.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.
package/dist/index.cjs.js CHANGED
@@ -5,21 +5,22 @@ var require$$1 = require('leven');
5
5
  var require$$2 = require('ora');
6
6
  var require$$1$1 = require('path');
7
7
  var require$$1$2 = require('fs');
8
- var require$$5 = require('shelljs');
8
+ var require$$0$1 = require('shelljs');
9
9
  var require$$6$1 = require('download-git-repo');
10
- var require$$0$1 = require('chalk');
11
- var require$$0$2 = require('async');
10
+ var require$$0$2 = require('chalk');
11
+ var require$$0$3 = require('async');
12
12
  var require$$1$3 = require('ejs');
13
13
  var require$$1$4 = require('inquirer');
14
- var require$$0$3 = require('metalsmith');
15
- var require$$0$4 = require('miniprogram-ci');
16
- var require$$0$5 = require('lodash');
14
+ var require$$0$4 = require('metalsmith');
15
+ var require$$0$5 = require('miniprogram-ci');
16
+ var require$$0$6 = require('lodash');
17
17
  var require$$7 = require('replace-ext');
18
- var require$$0$6 = require('webpack-chain');
19
- var require$$0$7 = require('webpack');
20
- var require$$0$8 = require('webpack/lib/SingleEntryPlugin');
18
+ var require$$0$7 = require('webpack-chain');
19
+ var require$$0$8 = require('webpack');
20
+ var require$$0$9 = require('webpack/lib/SingleEntryPlugin');
21
21
  var require$$3$1 = require('copy-webpack-plugin');
22
22
  var require$$1$5 = require('semver');
23
+ var require$$3$2 = require('glob-ignore');
23
24
 
24
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
25
26
 
@@ -28,21 +29,22 @@ var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
28
29
  var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
29
30
  var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
30
31
  var require$$1__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$1$2);
31
- var require$$5__default = /*#__PURE__*/_interopDefaultLegacy(require$$5);
32
- var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6$1);
33
32
  var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
33
+ var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6$1);
34
34
  var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
35
+ var require$$0__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
35
36
  var require$$1__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$1$3);
36
37
  var require$$1__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$1$4);
37
- var require$$0__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
38
38
  var require$$0__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
39
39
  var require$$0__default$5 = /*#__PURE__*/_interopDefaultLegacy(require$$0$5);
40
- var require$$7__default = /*#__PURE__*/_interopDefaultLegacy(require$$7);
41
40
  var require$$0__default$6 = /*#__PURE__*/_interopDefaultLegacy(require$$0$6);
41
+ var require$$7__default = /*#__PURE__*/_interopDefaultLegacy(require$$7);
42
42
  var require$$0__default$7 = /*#__PURE__*/_interopDefaultLegacy(require$$0$7);
43
43
  var require$$0__default$8 = /*#__PURE__*/_interopDefaultLegacy(require$$0$8);
44
+ var require$$0__default$9 = /*#__PURE__*/_interopDefaultLegacy(require$$0$9);
44
45
  var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3$1);
45
46
  var require$$1__default$5 = /*#__PURE__*/_interopDefaultLegacy(require$$1$5);
47
+ var require$$3__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$3$2);
46
48
 
47
49
  function getAugmentedNamespace(n) {
48
50
  if (n.__esModule) return n;
@@ -64,19 +66,19 @@ var src$1 = {};
64
66
  const program$1 = require$$0__default;
65
67
  const leven = require$$1__default;
66
68
  const ora = require$$2__default;
67
- const path$6 = require$$1__default$1;
68
- const fs$c = require$$1__default$2;
69
- const shelljs$5 = require$$5__default;
69
+ const path$7 = require$$1__default$1;
70
+ const fs$b = require$$1__default$2;
71
+ const shelljs$6 = require$$0__default$1;
70
72
  const download = require$$6__default;
71
- const chalk$3 = require$$0__default$1;
73
+ const chalk$3 = require$$0__default$2;
72
74
  const shelljsOptons = {
73
75
  slient: true
74
76
  }; // 获取当前目录
75
77
 
76
78
  const cwd = process.cwd();
77
79
 
78
- function resolve$a(...args) {
79
- return path$6.resolve(cwd, ...args);
80
+ function resolve$c(...args) {
81
+ return path$7.resolve(cwd, ...args);
80
82
  }
81
83
  /**
82
84
  * 封装logs
@@ -145,11 +147,11 @@ function downloadRepo(dest, downloadOptions = {
145
147
  branch
146
148
  } = downloadOptions;
147
149
 
148
- if (fs$c.existsSync(dest)) {
149
- shelljs$5.rm('-rf', dest);
150
+ if (fs$b.existsSync(dest)) {
151
+ shelljs$6.rm('-rf', dest);
150
152
  }
151
153
 
152
- shelljs$5.mkdir('-p', dest);
154
+ shelljs$6.mkdir('-p', dest);
153
155
  return new Promise(resolve => {
154
156
  download(`${repoUrl}#${branch}`, dest, {
155
157
  clone: true
@@ -175,23 +177,17 @@ function downloadRepo(dest, downloadOptions = {
175
177
 
176
178
  function downloadRepoForGit$2(url, dest, branch) {
177
179
  const cwd = process.cwd();
178
- return new Promise((resolve, reject) => {
180
+ return new Promise(resolve => {
179
181
  // 如果目标目录不存在
180
- if (fs$c.existsSync(dest)) {
181
- shelljs$5.rm('-rf', path$6.join(dest));
182
+ if (fs$b.existsSync(dest)) {
183
+ shelljs$6.rm('-rf', path$7.join(dest));
182
184
  }
183
185
 
184
- shelljs$5.mkdir('-p', dest);
185
- shelljs$5.cd(dest);
186
- shelljs$5.exec(`git clone ${url} ${dest} --depth=1`, shelljsOptons);
187
- shelljs$5.exec(`git checkout ${branch}`, code => {
188
- if (code === 0) {
189
- shelljs$5.cd(cwd);
190
- resolve();
191
- }
192
-
193
- reject();
194
- });
186
+ shelljs$6.mkdir('-p', dest);
187
+ shelljs$6.cd(dest);
188
+ shelljs$6.exec(`git clone ${url} ${dest} --branch ${branch} --depth 1`, shelljsOptons);
189
+ shelljs$6.cd(cwd);
190
+ resolve();
195
191
  });
196
192
  }
197
193
  /**
@@ -211,7 +207,7 @@ const cost = start => Date.now() - start;
211
207
  */
212
208
 
213
209
 
214
- function createTask$4(task, startText, endText) {
210
+ function createTask$5(task, startText, endText) {
215
211
  return async (...args) => {
216
212
  const start = Date.now();
217
213
  let result;
@@ -241,29 +237,29 @@ function createTask$4(task, startText, endText) {
241
237
  const camelize = str => str.replace(/-(\w)/g, (a, c) => c ? c.toUpperCase() : '');
242
238
 
243
239
  var widgets = {
244
- resolve: resolve$a,
240
+ resolve: resolve$c,
245
241
  log: log$3,
246
242
  isObject: isObject$2,
247
243
  isArray: isArray$1,
248
- createTask: createTask$4,
244
+ createTask: createTask$5,
249
245
  downloadRepo,
250
246
  downloadRepoForGit: downloadRepoForGit$2,
251
247
  suggestCommands: suggestCommands$1,
252
248
  camelize
253
249
  };
254
250
 
255
- const path$5 = require('path'); // 用户目录
251
+ const path$6 = require('path'); // 用户目录
256
252
 
257
253
 
258
254
  const HOME_DIR = process.env.HOME; // 所有文件的缓存目录
259
255
 
260
- const CACHE_DIR$1 = path$5.resolve(HOME_DIR, '.tmskit'); // 脚手架模板代码所在目录
256
+ const CACHE_DIR$1 = path$6.resolve(HOME_DIR, '.tmskit'); // 脚手架模板代码所在目录
261
257
 
262
- const TEMPLATE_DIR$1 = path$5.resolve(CACHE_DIR$1, 'template'); // 第三方模块源码存放的临时缓存目录
258
+ const TEMPLATE_DIR$1 = path$6.resolve(CACHE_DIR$1, 'template'); // 第三方模块源码存放的临时缓存目录
263
259
 
264
- const MODULE_CODE_DIR$1 = path$5.resolve(CACHE_DIR$1, 'modules_code'); // 脚手架模板代码的具体路径
260
+ const MODULE_CODE_DIR$1 = path$6.resolve(CACHE_DIR$1, 'modules_code'); // 脚手架模板代码的具体路径
265
261
 
266
- const TEMPLATE_PATH$1 = path$5.resolve(TEMPLATE_DIR$1, 'tools/tms-cli-template'); // 脚手架的名称
262
+ const TEMPLATE_PATH$1 = path$6.resolve(TEMPLATE_DIR$1, 'tools/tms-cli-template'); // 脚手架的名称
267
263
 
268
264
  const TMS_NAME$2 = 'tmskit'; // 脚手架的配置名称
269
265
 
@@ -274,7 +270,7 @@ const DEFAULT_MODULE_DIR$5 = 'modules'; // 模块的配置文件的名称
274
270
  const MODULE_CONFIG_FILENAME$2 = 'module.config.json'; // 默认的webpack entry
275
271
 
276
272
  const DEFAULT_WEBPACK_ENTRY$2 = {
277
- app: path$5.resolve(process.cwd(), 'app')
273
+ app: path$6.resolve(process.cwd(), 'app')
278
274
  }; // 默认从源码拷贝到编译后的配置
279
275
 
280
276
  const DEFAULT_COPY_CONFIG$3 = ['package.json', 'app.js', 'app.ts', 'app.less', 'app.wxss', 'sitemap.json']; // 开发模式
@@ -288,6 +284,7 @@ const ENV = {
288
284
  dev: 'development',
289
285
  prod: 'production'
290
286
  };
287
+ const TEMPLATE_TKIT_DIR$2 = '_tmskit';
291
288
 
292
289
  var constant = /*#__PURE__*/Object.freeze({
293
290
  __proto__: null,
@@ -303,19 +300,20 @@ var constant = /*#__PURE__*/Object.freeze({
303
300
  DEFAULT_COPY_CONFIG: DEFAULT_COPY_CONFIG$3,
304
301
  MODULE_CODE_DIR: MODULE_CODE_DIR$1,
305
302
  MODE: MODE$1,
306
- ENV: ENV
303
+ ENV: ENV,
304
+ TEMPLATE_TKIT_DIR: TEMPLATE_TKIT_DIR$2
307
305
  });
308
306
 
309
307
  var require$$3 = /*@__PURE__*/getAugmentedNamespace(constant);
310
308
 
311
- const fs$b = require$$1__default$2;
309
+ const fs$a = require$$1__default$2;
312
310
  /**
313
311
  * 判断目录是否为空
314
312
  * @param {string} dirname 目录名
315
313
  * @returns
316
314
  */
317
315
 
318
- const isDirEmpty = dirname => fs$b.promises.readdir(dirname).then(files => files.length === 0);
316
+ const isDirEmpty = dirname => fs$a.promises.readdir(dirname).then(files => files.length === 0);
319
317
  /**
320
318
  * 确保目录存在,不存在就创建一个
321
319
  * @param {*} dirname 目录名
@@ -323,8 +321,8 @@ const isDirEmpty = dirname => fs$b.promises.readdir(dirname).then(files => files
323
321
 
324
322
 
325
323
  const ensureDirExist = dirname => {
326
- if (!fs$b.existsSync(dirname)) {
327
- fs$b.mkdirSync(dirname, {
324
+ if (!fs$a.existsSync(dirname)) {
325
+ fs$a.mkdirSync(dirname, {
328
326
  recursive: true
329
327
  });
330
328
  }
@@ -335,7 +333,7 @@ var io$2 = {
335
333
  ensureDirExist
336
334
  };
337
335
 
338
- const chalk$2 = require$$0__default$1;
336
+ const chalk$2 = require$$0__default$2;
339
337
  /**
340
338
  * 本文件提供无依赖的在终端打印彩色文字的方法。
341
339
  */
@@ -386,7 +384,7 @@ var log$2 = {
386
384
  warn
387
385
  };
388
386
 
389
- const async = require$$0__default$2;
387
+ const async = require$$0__default$3;
390
388
  const ejs = require$$1__default$3;
391
389
 
392
390
  const render$1 = (files, metalsmith, next) => {
@@ -406,23 +404,29 @@ const render$1 = (files, metalsmith, next) => {
406
404
 
407
405
  var render_1 = render$1;
408
406
 
409
- const fs$a = require$$1__default$2;
407
+ const fs$9 = require$$1__default$2;
410
408
  const inquirer = require$$1__default$4;
409
+ const {
410
+ resolve: resolve$b
411
+ } = widgets;
412
+ const {
413
+ TEMPLATE_TKIT_DIR: TEMPLATE_TKIT_DIR$1
414
+ } = require$$3;
411
415
  /**
412
416
  * 获取模板内的问题
413
- * @param {string} templateDir 模板目录
417
+ * @param {string} dir questions.json所在的目录
414
418
  * @returns {Array} inquirer 问题数组
415
419
  */
416
420
 
417
- const parseTemplateQuestions = templateDir => {
421
+ const parseTemplateQuestions = dir => {
418
422
  let prompts = [];
419
423
 
420
- if (!fs$a.existsSync(`${templateDir}/questions.json`)) {
424
+ if (!fs$9.existsSync(`${dir}/questions.json`)) {
421
425
  return prompts;
422
426
  }
423
427
 
424
428
  try {
425
- const json = JSON.parse(fs$a.readFileSync(`${templateDir}/questions.json`));
429
+ const json = JSON.parse(fs$9.readFileSync(`${dir}/questions.json`));
426
430
 
427
431
  if (Array.isArray(json) && json.length > 0) {
428
432
  json.forEach((item, index) => {
@@ -455,7 +459,7 @@ const isQuestionType = result => {
455
459
  };
456
460
 
457
461
  const ask$1 = templateDir => (files, metalsmith, next) => {
458
- const prompts = parseTemplateQuestions(templateDir);
462
+ const prompts = parseTemplateQuestions(resolve$b(templateDir, TEMPLATE_TKIT_DIR$1));
459
463
  const metadata = metalsmith.metadata();
460
464
  const filteredPrompts = prompts.filter(prompt => {
461
465
  if (metadata[prompt.name] && `${metadata[prompt.name]}`.trim() !== '') {
@@ -480,8 +484,7 @@ var ask_1 = ask$1;
480
484
  const FILES_TO_IGNORE$1 = ['node_modules'];
481
485
  var ignoreFiles = FILES_TO_IGNORE$1;
482
486
 
483
- const Metalsmith = require$$0__default$3;
484
- const fs$9 = require$$1__default$2;
487
+ const Metalsmith = require$$0__default$4;
485
488
  const render = render_1;
486
489
  const ask = ask_1;
487
490
  const FILES_TO_IGNORE = ignoreFiles;
@@ -491,7 +494,6 @@ const generator$1 = (buildDir, distDir, preMetadata) => new Promise((resolve, re
491
494
  if (err) {
492
495
  reject(err);
493
496
  } else {
494
- fs$9.unlinkSync(`${distDir}/questions.json`);
495
497
  resolve('finish');
496
498
  }
497
499
  });
@@ -499,17 +501,18 @@ const generator$1 = (buildDir, distDir, preMetadata) => new Promise((resolve, re
499
501
 
500
502
  var generator_1 = generator$1;
501
503
 
502
- const path$4 = require$$1__default$1;
504
+ const path$5 = require$$1__default$1;
503
505
  const fs$8 = require$$1__default$2;
504
- const shelljs$4 = require$$5__default;
506
+ const shelljs$5 = require$$0__default$1;
505
507
  const {
506
508
  TEMPLATE_DIR,
507
- TEMPLATE_PATH
509
+ TEMPLATE_PATH,
510
+ TEMPLATE_TKIT_DIR
508
511
  } = require$$3;
509
512
  const {
510
513
  downloadRepoForGit: downloadRepoForGit$1,
511
- createTask: createTask$3,
512
- resolve: resolve$9
514
+ createTask: createTask$4,
515
+ resolve: resolve$a
513
516
  } = widgets;
514
517
  const io$1 = io$2;
515
518
  const {
@@ -531,7 +534,7 @@ async function createAppDir(targetDir) {
531
534
  process.exit(1);
532
535
  }
533
536
  } else {
534
- shelljs$4.mkdir('-p', targetDir);
537
+ shelljs$5.mkdir('-p', targetDir);
535
538
  }
536
539
  }
537
540
  /**
@@ -543,24 +546,36 @@ async function createAppDir(targetDir) {
543
546
 
544
547
  async function create(appName) {
545
548
  const cwd = process.cwd();
546
- const targetDir = path$4.resolve(cwd, appName);
549
+ const targetDir = path$5.resolve(cwd, appName);
547
550
  const appType = 'mp';
548
551
  createAppDir(targetDir); // 创建缓存目录
549
552
 
550
553
  io$1.ensureDirExist(TEMPLATE_DIR); // 拉取git模板
551
554
 
552
- await createTask$3(downloadRepoForGit$1, '拉取模板仓库', '拉取模板仓库完成')('https://git.woa.com/tmsfe/tms-frontend.git', TEMPLATE_DIR, 'master'); // 生成模板(1. 询问问题, 2. ejs生成模板 3.生成到目标目录)
555
+ await createTask$4(downloadRepoForGit$1, '拉取模板仓库', '拉取模板仓库完成')('https://git.woa.com/tmsfe/tms-frontend.git', TEMPLATE_DIR, 'feat-albertluo-template82b'); // 生成模板(1. 询问问题, 2. ejs生成模板 3.生成到目标目录)
553
556
 
554
- generator(path$4.join(TEMPLATE_PATH, appType), targetDir, {
557
+ generator(path$5.join(TEMPLATE_PATH, appType), targetDir, {
555
558
  appName,
556
559
  appType
557
560
  }).then(() => {
558
561
  succeed('项目创建完成,开始初始化...');
559
- shelljs$4.cd(appName); // 初始化构件主包的代码, 让用户打开项目可以跑起来
562
+ shelljs$5.cd(appName);
563
+
564
+ const hooks = require(resolve$a(appName, TEMPLATE_TKIT_DIR, 'hooks.js'));
560
565
 
561
- if (fs$8.existsSync(resolve$9(`${appName}/tms.config.js`))) {
562
- shelljs$4.exec('tmskit run build');
566
+ if (hooks.afterCreate) {
567
+ hooks.afterCreate.forEach(item => {
568
+ if (typeof item === 'function') {
569
+ item.call(null, shelljs$5, {
570
+ appName
571
+ });
572
+ } else {
573
+ shelljs$5.exec(item);
574
+ }
575
+ });
563
576
  }
577
+
578
+ shelljs$5.rm('-rf', resolve$a(appName, TEMPLATE_TKIT_DIR));
564
579
  }).catch(err => {
565
580
  fail$9(err.message);
566
581
  console.log('详细的错误信息:', err);
@@ -578,7 +593,7 @@ const {
578
593
  fail: fail$8
579
594
  } = log$2;
580
595
  const {
581
- resolve: resolve$8,
596
+ resolve: resolve$9,
582
597
  isObject: isObject$1,
583
598
  isArray
584
599
  } = widgets;
@@ -627,7 +642,7 @@ function getLocalModuleConfig(modules = [], appName, moduleDir, moduleConfigFile
627
642
  modules.forEach(({
628
643
  path
629
644
  }) => {
630
- const moduleConfigPath = resolve$8(path, moduleConfigFilename);
645
+ const moduleConfigPath = resolve$9(path, moduleConfigFilename);
631
646
 
632
647
  if (fs$7.existsSync(moduleConfigPath)) {
633
648
  const content = fs$7.readFileSync(moduleConfigPath, 'utf-8');
@@ -721,12 +736,12 @@ function buildOutputAppJson$2(tmsConfig, modules) {
721
736
  // 获取当前 modules 下的所有子模块的配置内容
722
737
  const modulesConfig = getLocalModuleConfig(modules, tmsConfig.appName, DEFAULT_MODULE_DIR$4, MODULE_CONFIG_FILENAME$1); // 获取app.json的配置
723
738
 
724
- const appJson = getAppJsonContent(resolve$8('./app.json')); // 更新app.json中的subpackages
739
+ const appJson = getAppJsonContent(resolve$9('./app.json')); // 更新app.json中的subpackages
725
740
 
726
741
  updateSubpackages(appJson, modulesConfig); // 更新主包,需在subpackages处理完成后执行, pages/
727
742
 
728
743
  updateMainPackages(appJson, tmsConfig.mainPackages);
729
- fs$7.writeFileSync(resolve$8(`${tmsConfig.webpack.outputDir}/app.json`), JSON.stringify(appJson, null, 2), 'utf8');
744
+ fs$7.writeFileSync(resolve$9(`${tmsConfig.webpack.outputDir}/app.json`), JSON.stringify(appJson, null, 2), 'utf8');
730
745
  return appJson;
731
746
  }
732
747
 
@@ -739,8 +754,8 @@ var buildAppJson = {
739
754
  * 本文件主要负责项目或者分包依赖的npm的安装
740
755
  */
741
756
  const fs$6 = require$$1__default$2;
742
- const path$3 = require$$1__default$1;
743
- const shell = require$$5__default;
757
+ const path$4 = require$$1__default$1;
758
+ const shell = require$$0__default$1;
744
759
  const LOG = log$2;
745
760
  const dirpath = process.cwd(); // 项目根目录
746
761
 
@@ -785,7 +800,7 @@ const getNpmCache = function (targetDir, cacheDir) {
785
800
  const npmInstallAll$1 = async (modules, contextDir, cacheDir) => {
786
801
  const packageJsonFiles = await findAllPackageJson$1(modules, contextDir);
787
802
  await Promise.all(packageJsonFiles.map(file => new Promise(resolve => {
788
- const dir = path$3.dirname(file);
803
+ const dir = path$4.dirname(file);
789
804
  shell.cd(dir);
790
805
 
791
806
  if (!fs$6.existsSync(`${dir}/node_modules`)) {
@@ -833,7 +848,7 @@ const findFilesByFilter = (startPath, filter) => {
833
848
 
834
849
  const files = fs$6.readdirSync(startPath);
835
850
  files.forEach(file => {
836
- const filename = path$3.join(startPath, file);
851
+ const filename = path$4.join(startPath, file);
837
852
  const stat = fs$6.lstatSync(filename); // 当前文件是文件夹类型,继续递归
838
853
 
839
854
  if (stat.isDirectory()) {
@@ -860,10 +875,10 @@ const findAllPackageJson$1 = (subRoots = [], contextDir) => {
860
875
  const packageJsonName = 'package.json'; // 查找文件名
861
876
 
862
877
  const cwd = contextDir || dirpath;
863
- const result = [path$3.join(cwd, packageJsonName)]; // 默认填充根目录下的package.json
878
+ const result = [path$4.join(cwd, packageJsonName)]; // 默认填充根目录下的package.json
864
879
 
865
880
  subRoots.forEach(subRoot => {
866
- const toppath = path$3.join(cwd, subRoot.root); // 从该目录开始查找package.json文件
881
+ const toppath = path$4.join(cwd, subRoot.root); // 从该目录开始查找package.json文件
867
882
 
868
883
  const list = findFilesByFilter(toppath, packageJsonName);
869
884
  result.push(...list);
@@ -877,8 +892,8 @@ var npmUtils = {
877
892
  };
878
893
 
879
894
  /* eslint-disable require-jsdoc */
880
- const ci = require$$0__default$4;
881
- const path$2 = require$$1__default$1;
895
+ const ci = require$$0__default$5;
896
+ const path$3 = require$$1__default$1;
882
897
  /**
883
898
  * 获取小程序ci的Project对象
884
899
  * @returns {Object} 小程序ci对象
@@ -892,7 +907,7 @@ const getMpCi = ({
892
907
  }) => {
893
908
  var _cfgJsonContent$packO;
894
909
 
895
- const cfgJsonContent = require(path$2.join(projectPath, 'project.config.json'));
910
+ const cfgJsonContent = require(path$3.join(projectPath, 'project.config.json'));
896
911
 
897
912
  const ignores = (cfgJsonContent === null || cfgJsonContent === void 0 ? void 0 : (_cfgJsonContent$packO = cfgJsonContent.packOptions) === null || _cfgJsonContent$packO === void 0 ? void 0 : _cfgJsonContent$packO.ignore.map(({
898
913
  value
@@ -934,7 +949,7 @@ const formatPackNpmWarning = warning => {
934
949
  */
935
950
 
936
951
 
937
- const buildMpNpm$1 = async ({
952
+ const buildMpNpm$2 = async ({
938
953
  appId,
939
954
  projectPath,
940
955
  privateKey
@@ -955,7 +970,7 @@ const buildMpNpm$1 = async ({
955
970
  };
956
971
 
957
972
  var mpCiUtils = {
958
- buildMpNpm: buildMpNpm$1
973
+ buildMpNpm: buildMpNpm$2
959
974
  };
960
975
 
961
976
  class Globale {
@@ -993,19 +1008,19 @@ var global = {
993
1008
  getGlobalInstance: getGlobalInstance$1
994
1009
  };
995
1010
 
996
- const MetalSmith = require$$0__default$3;
1011
+ const MetalSmith = require$$0__default$4;
997
1012
  const {
998
1013
  getGlobalInstance
999
1014
  } = global;
1000
1015
  const {
1001
1016
  downloadRepoForGit,
1002
- resolve: resolve$7
1017
+ resolve: resolve$8
1003
1018
  } = widgets;
1004
1019
  const {
1005
1020
  fail: fail$7
1006
1021
  } = log$2;
1007
1022
  const fs$5 = require$$1__default$2;
1008
- const shelljs$3 = require$$5__default;
1023
+ const shelljs$4 = require$$0__default$1;
1009
1024
  /**
1010
1025
  * 对克隆下来的模块进行相应的文件处理操作,比如收集处理模块信息,进行信息缓存等操作
1011
1026
  * @param { string } sourceDir 缓存文件夹
@@ -1062,9 +1077,9 @@ async function downLoadAndMoveModule(sourceDir, targetDir, moduleInfo) {
1062
1077
  path
1063
1078
  } = moduleInfo; // 源码临时存在的源目录
1064
1079
 
1065
- let sourcePath = resolve$7(sourceDir, path); // 源码要放到目标目录
1080
+ let sourcePath = resolve$8(sourceDir, path); // 源码要放到目标目录
1066
1081
 
1067
- const targetPath = resolve$7(targetDir, path); // 设置模块的构建分支
1082
+ const targetPath = resolve$8(targetDir, path); // 设置模块的构建分支
1068
1083
 
1069
1084
  const cloneBranch = buildGitTag && typeof buildGitTag === 'string' ? buildGitTag : 'master'; // 检查缓存中有没有
1070
1085
 
@@ -1080,7 +1095,7 @@ async function downLoadAndMoveModule(sourceDir, targetDir, moduleInfo) {
1080
1095
  }
1081
1096
 
1082
1097
  if (fs$5.existsSync(targetPath)) {
1083
- shelljs$3.rm('-rf', targetPath);
1098
+ shelljs$4.rm('-rf', targetPath);
1084
1099
  }
1085
1100
 
1086
1101
  await moveFile(sourcePath, targetPath, ['node_modules', '.git']);
@@ -1115,7 +1130,7 @@ var defaultTmsConfig$1 = {
1115
1130
  }
1116
1131
  };
1117
1132
 
1118
- const loadash = require$$0__default$5;
1133
+ const loadash = require$$0__default$6;
1119
1134
  const fs$4 = require$$1__default$2;
1120
1135
  const {
1121
1136
  TMS_NAME: TMS_NAME$1,
@@ -1123,7 +1138,7 @@ const {
1123
1138
  MODULE_CONFIG_FILENAME
1124
1139
  } = require$$3;
1125
1140
  const {
1126
- resolve: resolve$6,
1141
+ resolve: resolve$7,
1127
1142
  isObject
1128
1143
  } = widgets;
1129
1144
  const {
@@ -1139,7 +1154,7 @@ const {
1139
1154
  */
1140
1155
 
1141
1156
  const readTmsConfig$1 = function (env) {
1142
- const tmsConfigPath = resolve$6(TMS_CONFIG_FILENAME);
1157
+ const tmsConfigPath = resolve$7(TMS_CONFIG_FILENAME);
1143
1158
 
1144
1159
  if (!fs$4.existsSync(tmsConfigPath)) {
1145
1160
  fail$6('当前执行目录没有tms.config.js的配置项,请进行配置');
@@ -1192,7 +1207,7 @@ const tmsModulesMergeLocalModuleCfg$3 = (modules, appName, moduleDir) => {
1192
1207
  path: relativePath,
1193
1208
  name: moduleName
1194
1209
  }, moduleIndex) => {
1195
- const moduleConfigPath = resolve$6(relativePath, MODULE_CONFIG_FILENAME);
1210
+ const moduleConfigPath = resolve$7(relativePath, MODULE_CONFIG_FILENAME);
1196
1211
 
1197
1212
  if (fs$4.existsSync(moduleConfigPath)) {
1198
1213
  let moduleConfigContent = fs$4.readFileSync(moduleConfigPath, 'utf-8');
@@ -1221,12 +1236,12 @@ var tkitUtils = {
1221
1236
  tmsModulesMergeLocalModuleCfg: tmsModulesMergeLocalModuleCfg$3
1222
1237
  };
1223
1238
 
1224
- const shelljs$2 = require$$5__default;
1239
+ const shelljs$3 = require$$0__default$1;
1225
1240
  const fs$3 = require$$1__default$2;
1226
1241
  const io = io$2;
1227
1242
  const {
1228
- resolve: resolve$5,
1229
- createTask: createTask$2
1243
+ resolve: resolve$6,
1244
+ createTask: createTask$3
1230
1245
  } = widgets;
1231
1246
  const {
1232
1247
  buildOutputAppJson: buildOutputAppJson$1
@@ -1235,7 +1250,7 @@ const {
1235
1250
  npmInstallAll
1236
1251
  } = npmUtils;
1237
1252
  const {
1238
- buildMpNpm
1253
+ buildMpNpm: buildMpNpm$1
1239
1254
  } = mpCiUtils;
1240
1255
  const {
1241
1256
  MODULE_CODE_DIR,
@@ -1261,54 +1276,54 @@ const {
1261
1276
  */
1262
1277
 
1263
1278
  const cpFilesToOutput = function (tmsConfig, targetModules, defaultFiles) {
1264
- const outputDir = resolve$5(tmsConfig.webpack.outputDir);
1279
+ const outputDir = resolve$6(tmsConfig.webpack.outputDir);
1265
1280
  io.ensureDirExist(outputDir);
1266
1281
  defaultFiles.forEach(item => {
1267
- if (fs$3.existsSync(resolve$5(item))) {
1268
- shelljs$2.cp('-rf', resolve$5(item), resolve$5(tmsConfig.webpack.outputDir, item));
1282
+ if (fs$3.existsSync(resolve$6(item))) {
1283
+ shelljs$3.cp('-rf', resolve$6(item), resolve$6(tmsConfig.webpack.outputDir, item));
1269
1284
  }
1270
1285
  }); // 拷贝模块的代码到编译输出目录
1271
1286
 
1272
1287
  targetModules.forEach(item => {
1273
- const outputModuleDir = resolve$5(`${tmsConfig.webpack.outputDir}/${item.root}`);
1288
+ const outputModuleDir = resolve$6(`${tmsConfig.webpack.outputDir}/${item.root}`);
1274
1289
 
1275
- if (!fs$3.existsSync(resolve$5(item.path))) {
1290
+ if (!fs$3.existsSync(resolve$6(item.path))) {
1276
1291
  fail$5(`${item.path}模块代码路径不存在, 请检查tms.config.js的${item.name}模块的path`);
1277
1292
  process.exit(1);
1278
1293
  }
1279
1294
 
1280
1295
  if (!fs$3.existsSync(outputModuleDir)) {
1281
- shelljs$2.mkdir('-p', outputModuleDir);
1296
+ shelljs$3.mkdir('-p', outputModuleDir);
1282
1297
  } else {
1283
1298
  // 删除除了node_modules、miniprogram_npm 的其他文件
1284
1299
  // eslint-disable-next-line
1285
- shelljs$2.exec('find . -not \( -name node_modules -or -name miniprogram_npm \) -delete', {
1300
+ shelljs$3.exec('find . -not \( -name node_modules -or -name miniprogram_npm \) -delete', {
1286
1301
  silent: true
1287
1302
  });
1288
1303
  }
1289
1304
 
1290
- shelljs$2.cp('-Rf', `${resolve$5(item.path)}/*`, outputModuleDir);
1305
+ shelljs$3.cp('-Rf', `${resolve$6(item.path)}/*`, outputModuleDir);
1291
1306
  });
1292
1307
  };
1293
1308
 
1294
1309
  async function task(tmsConfig, targetModules) {
1295
1310
  // 下载和移动代码
1296
- await createTask$2(cloneModules, '开始下载模块代码完成', '下载模块代码码完成')(MODULE_CODE_DIR, resolve$5('./'), targetModules); // tms.config.js的modules 合并 module.config.json的配置项
1311
+ await createTask$3(cloneModules, '开始下载模块代码完成', '下载模块代码码完成')(MODULE_CODE_DIR, resolve$6('./'), targetModules); // tms.config.js的modules 合并 module.config.json的配置项
1297
1312
 
1298
1313
  const newModules = tmsModulesMergeLocalModuleCfg$2(targetModules, tmsConfig.appName, DEFAULT_MODULE_DIR$3);
1299
1314
  console.log('当前init的有效模块', newModules.map(item => item.name)); // 拷贝相关配置文件到输出目录
1300
1315
 
1301
- await createTask$2(cpFilesToOutput, '开始拷贝文件到编译输出目录', '拷贝文件到编译输出目录完成')(tmsConfig, newModules, DEFAULT_COPY_CONFIG$2); // npm install
1316
+ await createTask$3(cpFilesToOutput, '开始拷贝文件到编译输出目录', '拷贝文件到编译输出目录完成')(tmsConfig, newModules, DEFAULT_COPY_CONFIG$2); // npm install
1302
1317
 
1303
- await createTask$2(npmInstallAll, '开始npm install', 'npm install 完成')(newModules, resolve$5(tmsConfig.webpack.outputDir), `${CACHE_DIR}/node_modules`); // 构建miniprograme_npm
1318
+ await createTask$3(npmInstallAll, '开始npm install', 'npm install 完成')(newModules, resolve$6(tmsConfig.webpack.outputDir), `${CACHE_DIR}/node_modules`); // 构建miniprograme_npm
1304
1319
 
1305
- await createTask$2(buildMpNpm, '开始构建miniprograme_npm', '构建miniprograme_npm 完成')({
1320
+ await createTask$3(buildMpNpm$1, '开始构建miniprograme_npm', '构建miniprograme_npm 完成')({
1306
1321
  appId: tmsConfig.appId,
1307
- projectPath: resolve$5('./'),
1322
+ projectPath: resolve$6('./'),
1308
1323
  privateKey: tmsConfig.privateKey
1309
1324
  }); // 动态生成编译后的app.json;
1310
1325
 
1311
- await createTask$2(buildOutputAppJson$1, '开始生成编译后的app.json', '生成编译后的app.json完成')(tmsConfig, newModules);
1326
+ await createTask$3(buildOutputAppJson$1, '开始生成编译后的app.json', '生成编译后的app.json完成')(tmsConfig, newModules);
1312
1327
  return newModules;
1313
1328
  }
1314
1329
 
@@ -1321,10 +1336,10 @@ async function bootstrap(tmsConfig, targetModules) {
1321
1336
 
1322
1337
  var init$5 = bootstrap;
1323
1338
 
1324
- const path$1 = require$$1__default$1;
1339
+ const path$2 = require$$1__default$1;
1325
1340
  const fs$2 = require$$1__default$2;
1326
1341
  const {
1327
- resolve: resolve$4
1342
+ resolve: resolve$5
1328
1343
  } = widgets;
1329
1344
  const {
1330
1345
  buildOutputAppJson
@@ -1369,14 +1384,14 @@ function ext(entry, extensions) {
1369
1384
 
1370
1385
  function getAlias$1(modules) {
1371
1386
  const alias = {};
1372
- const allPackages = findAllPackageJson(modules, resolve$4('./dist'));
1387
+ const allPackages = findAllPackageJson(modules, resolve$5('./dist'));
1373
1388
  allPackages.forEach(packageFilePath => {
1374
1389
  const {
1375
1390
  dependencies
1376
1391
  } = require(packageFilePath);
1377
1392
 
1378
1393
  Object.keys(dependencies).forEach(dependence => {
1379
- alias[dependence] = path$1.join(path$1.dirname(packageFilePath), `./miniprogram_npm/${dependence}`);
1394
+ alias[dependence] = path$2.join(path$2.dirname(packageFilePath), `./miniprogram_npm/${dependence}`);
1380
1395
  });
1381
1396
  });
1382
1397
  return alias;
@@ -1393,13 +1408,13 @@ function getPageEntry(modules, tmsConfig, moduleDir) {
1393
1408
  root
1394
1409
  }) => {
1395
1410
  pages.forEach(page => {
1396
- const pageJsonPath = `${resolve$4(relativePath, page)}.json`;
1411
+ const pageJsonPath = `${resolve$5(relativePath, page)}.json`;
1397
1412
 
1398
1413
  if (fs$2.existsSync(pageJsonPath)) {
1399
1414
  const pageJsonContent = JSON.parse(fs$2.readFileSync(pageJsonPath, 'utf-8'));
1400
- const pageDir = path$1.dirname(pageJsonPath); // 该页面所在的目录
1415
+ const pageDir = path$2.dirname(pageJsonPath); // 该页面所在的目录
1401
1416
 
1402
- const extValue = ext(resolve$4(relativePath, page), extensions);
1417
+ const extValue = ext(resolve$5(relativePath, page), extensions);
1403
1418
 
1404
1419
  if (!extValue) {
1405
1420
  fail$4(`当前${page}找不到入口.js或.ts文件`);
@@ -1409,7 +1424,7 @@ function getPageEntry(modules, tmsConfig, moduleDir) {
1409
1424
  const entryKey = `${root}/${page}${extValue.ext}`;
1410
1425
  Object.assign(entry, {
1411
1426
  [entryKey]: extValue.file
1412
- }, getComponentEntry(pageJsonContent, pageDir, path$1.dirname(entryKey)));
1427
+ }, getComponentEntry(pageJsonContent, pageDir, path$2.dirname(entryKey)));
1413
1428
  }
1414
1429
  });
1415
1430
  });
@@ -1442,9 +1457,9 @@ function getComponentEntry(pageJson, pagePath, pageKey) {
1442
1457
  componentKeys.forEach(key => {
1443
1458
  if (json.usingComponents[key].startsWith('.')) {
1444
1459
  // 拼出组件所在位置的绝对路径
1445
- const comValue = path$1.join(dir, json.usingComponents[key]);
1460
+ const comValue = path$2.join(dir, json.usingComponents[key]);
1446
1461
  const extValue = ext(comValue, extensions);
1447
- const comKey = path$1.resolve('/', rootKey, json.usingComponents[key]);
1462
+ const comKey = path$2.resolve('/', rootKey, json.usingComponents[key]);
1448
1463
 
1449
1464
  if (!extValue) {
1450
1465
  fail$4(`当前page: ${pagePath} component: ${comValue}找不到入口.js或.ts文件`);
@@ -1456,9 +1471,9 @@ function getComponentEntry(pageJson, pagePath, pageKey) {
1456
1471
 
1457
1472
  if (fs$2.existsSync(comJsonPath)) {
1458
1473
  const comJsonContent = JSON.parse(fs$2.readFileSync(comJsonPath, 'utf-8'));
1459
- const comDir = path$1.dirname(comJsonPath); // 该页面所在的目录
1474
+ const comDir = path$2.dirname(comJsonPath); // 该页面所在的目录
1460
1475
 
1461
- task(comJsonContent, comDir, path$1.dirname(comKey));
1476
+ task(comJsonContent, comDir, path$2.dirname(comKey));
1462
1477
  }
1463
1478
  }
1464
1479
  });
@@ -1484,10 +1499,10 @@ function getCopyPlugin$2(defaultCopyConfig, modules, tmsConfig, env) {
1484
1499
  const patterns = []; // 默认的一些配置拷贝文件 package.json、sitemap.json等
1485
1500
 
1486
1501
  defaultCopyConfig.forEach(item => {
1487
- if (fs$2.existsSync(resolve$4(item))) {
1502
+ if (fs$2.existsSync(resolve$5(item))) {
1488
1503
  patterns.push({
1489
- from: resolve$4(item),
1490
- to: resolve$4(`./${toPath}/${item}`),
1504
+ from: resolve$5(item),
1505
+ to: resolve$5(`./${toPath}/${item}`),
1491
1506
  transform: {
1492
1507
  cache: true
1493
1508
  }
@@ -1497,8 +1512,8 @@ function getCopyPlugin$2(defaultCopyConfig, modules, tmsConfig, env) {
1497
1512
 
1498
1513
  modules.forEach(item => {
1499
1514
  patterns.push({
1500
- from: resolve$4(item.path),
1501
- to: resolve$4(`./${toPath}/${item.root}`),
1515
+ from: resolve$5(item.path),
1516
+ to: resolve$5(`./${toPath}/${item.root}`),
1502
1517
  globOptions: {
1503
1518
  ignore: ['**/*.js', '*.js', '**/*.ts', '*.ts']
1504
1519
  },
@@ -1521,8 +1536,8 @@ function getCopyPlugin$2(defaultCopyConfig, modules, tmsConfig, env) {
1521
1536
  const appJsonConfig = ['app.json'];
1522
1537
  appJsonConfig.forEach(item => {
1523
1538
  patterns.push({
1524
- from: resolve$4(item),
1525
- to: resolve$4(`./${toPath}/${item}`),
1539
+ from: resolve$5(item),
1540
+ to: resolve$5(`./${toPath}/${item}`),
1526
1541
  transform: {
1527
1542
  cache: true,
1528
1543
  transformer: () => {
@@ -1586,15 +1601,15 @@ var utils = {
1586
1601
  getAlias: getAlias$1
1587
1602
  };
1588
1603
 
1589
- const WebpackChain = require$$0__default$6;
1590
- const webpack$2 = require$$0__default$7;
1604
+ const WebpackChain = require$$0__default$7;
1605
+ const webpack$2 = require$$0__default$8;
1591
1606
  const {
1592
1607
  getEntry: getEntry$1,
1593
1608
  stringified,
1594
1609
  getAlias
1595
1610
  } = utils;
1596
1611
  const {
1597
- resolve: resolve$3
1612
+ resolve: resolve$4
1598
1613
  } = widgets;
1599
1614
  const {
1600
1615
  DEFAULT_WEBPACK_ENTRY: DEFAULT_WEBPACK_ENTRY$1,
@@ -1612,7 +1627,7 @@ var base = (tmsConfig, modules) => {
1612
1627
  webpackConfig.merge({
1613
1628
  entry,
1614
1629
  output: {
1615
- path: resolve$3(`./${tmsWebpack.outputDir}`),
1630
+ path: resolve$4(`./${tmsWebpack.outputDir}`),
1616
1631
  libraryTarget: 'commonjs2',
1617
1632
  filename: '[name]'
1618
1633
  },
@@ -1628,7 +1643,7 @@ var base = (tmsConfig, modules) => {
1628
1643
  devtool: tmsWebpack.sourceMap ? 'source-map' : false
1629
1644
  });
1630
1645
  webpackConfig.module.rule('ts-loader').test(/\.ts$/).use('ts-loader').loader(require.resolve('ts-loader')).options({
1631
- configFile: resolve$3('./tsconfig.json'),
1646
+ configFile: resolve$4('./tsconfig.json'),
1632
1647
  // 只进行语法转换,不进行类型校验,提高构建速度
1633
1648
  transpileOnly: true
1634
1649
  }).end(); // webpackConfig.module
@@ -1650,7 +1665,7 @@ var base = (tmsConfig, modules) => {
1650
1665
  return webpackConfig;
1651
1666
  };
1652
1667
 
1653
- const SingleEntryPlugin = require$$0__default$8;
1668
+ const SingleEntryPlugin = require$$0__default$9;
1654
1669
  const {
1655
1670
  DEFAULT_WEBPACK_ENTRY,
1656
1671
  DEFAULT_MODULE_DIR: DEFAULT_MODULE_DIR$1
@@ -1662,7 +1677,6 @@ const {
1662
1677
  class EntryExtraPlugin {
1663
1678
  constructor(options = {}) {
1664
1679
  this.options = options;
1665
- this.scriptExtensions = options.scriptExtensions || ['.ts', '.js'];
1666
1680
  }
1667
1681
 
1668
1682
  applyEntry(compiler, entry) {
@@ -1714,7 +1728,7 @@ var dev$2 = (...args) => {
1714
1728
  return webpackDevConfig;
1715
1729
  };
1716
1730
 
1717
- const webpack$1 = require$$0__default$7;
1731
+ const webpack$1 = require$$0__default$8;
1718
1732
  const webDevConfig = dev$2;
1719
1733
  const {
1720
1734
  setupDevWebPackHooks
@@ -1753,16 +1767,16 @@ var devServer = (...args) => {
1753
1767
  const fs$1 = require$$1__default$2;
1754
1768
  const semver$1 = require$$1__default$5;
1755
1769
  const {
1756
- resolve: resolve$2
1770
+ resolve: resolve$3
1757
1771
  } = widgets;
1758
- const path = require$$1__default$1;
1772
+ const path$1 = require$$1__default$1;
1759
1773
  const {
1760
1774
  fail: fail$2
1761
1775
  } = log$2;
1762
- const shelljs$1 = require$$5__default;
1776
+ const shelljs$2 = require$$0__default$1;
1763
1777
 
1764
1778
  const getLatestVersion = npmName => {
1765
- const data = shelljs$1.exec(`npm view ${npmName} version`);
1779
+ const data = shelljs$2.exec(`npm view ${npmName} version`);
1766
1780
  return data.stdout || '0.0.0';
1767
1781
  };
1768
1782
  /**
@@ -1780,17 +1794,17 @@ const checkDependencies$1 = (modules, cwd, outputDir) => {
1780
1794
  // 1.1根目录的package.json
1781
1795
 
1782
1796
  const packageArr = [{
1783
- srcPackageDir: path.join(cwd, packageJsonName),
1784
- destNpmDir: resolve$2(outputDir, 'node_modules')
1797
+ srcPackageDir: path$1.join(cwd, packageJsonName),
1798
+ destNpmDir: resolve$3(outputDir, 'node_modules')
1785
1799
  }]; // 1.2模块的package.json
1786
1800
 
1787
1801
  modules.forEach(item => {
1788
- const srcPackageDir = path.join(cwd, item.path, 'package.json');
1802
+ const srcPackageDir = path$1.join(cwd, item.path, 'package.json');
1789
1803
 
1790
1804
  if (fs$1.existsSync(srcPackageDir)) {
1791
1805
  packageArr.push({
1792
1806
  srcPackageDir,
1793
- destNpmDir: resolve$2(outputDir, item.root, 'node_modules')
1807
+ destNpmDir: resolve$3(outputDir, item.root, 'node_modules')
1794
1808
  });
1795
1809
  }
1796
1810
  }); // 步骤2. 比较package.json的依赖与node_modules依赖的版本号
@@ -1809,13 +1823,13 @@ const checkDependencies$1 = (modules, cwd, outputDir) => {
1809
1823
  const dependenciesKeys = Object.keys(dependencies);
1810
1824
 
1811
1825
  for (const key of dependenciesKeys) {
1812
- const depPath = path.join(item.destNpmDir, key);
1826
+ const depPath = path$1.join(item.destNpmDir, key);
1813
1827
 
1814
1828
  if (!fs$1.existsSync(depPath)) {
1815
1829
  return true;
1816
1830
  }
1817
1831
 
1818
- const depPackagePath = path.join(depPath, 'package.json');
1832
+ const depPackagePath = path$1.join(depPath, 'package.json');
1819
1833
 
1820
1834
  if (fs$1.existsSync(depPackagePath)) {
1821
1835
  const packageData = require(depPackagePath);
@@ -1845,7 +1859,7 @@ var checkDependencies_1 = {
1845
1859
  const webpackServer = devServer;
1846
1860
  const fs = require$$1__default$2;
1847
1861
  const {
1848
- resolve: resolve$1
1862
+ resolve: resolve$2
1849
1863
  } = widgets;
1850
1864
  const init$4 = init$5;
1851
1865
  const {
@@ -1895,21 +1909,21 @@ function isInit(tmsConfig, targetModules, contextDir) {
1895
1909
  } // 判断源码目录是否有该模块
1896
1910
 
1897
1911
 
1898
- if (item.path && !fs.existsSync(resolve$1(item.path))) {
1912
+ if (item.path && !fs.existsSync(resolve$2(item.path))) {
1899
1913
  fail$1(`${item.path}模块代码路径不存在, 请检查tms.config.js的${item.name}模块的path`);
1900
1914
  process.exit(1);
1901
1915
  }
1902
1916
  } // 判断package.json的版本是否有新的版本
1903
1917
 
1904
1918
 
1905
- return checkDependencies(targetModules, resolve$1('./'), tmsConfig.webpack.outputDir);
1919
+ return checkDependencies(targetModules, resolve$2('./'), tmsConfig.webpack.outputDir);
1906
1920
  }
1907
1921
 
1908
1922
  async function dev$1(tmsConfig, targetModules, env) {
1909
1923
  // tms.config.js的modules 合并 module.config.json的配置项
1910
1924
  let newModules = tmsModulesMergeLocalModuleCfg(targetModules, tmsConfig.appName, DEFAULT_MODULE_DIR); // 判断是否进行init命令
1911
1925
 
1912
- if (isInit(tmsConfig, newModules, resolve$1('dist'))) {
1926
+ if (isInit(tmsConfig, newModules, resolve$2('dist'))) {
1913
1927
  // init函数会将 最新的tms.config.js的modules 合并 module.config.json的配置项 返回,不需要再做重复工作
1914
1928
  const initData = await init$4(tmsConfig, targetModules);
1915
1929
  newModules = initData.targetModules;
@@ -1941,10 +1955,10 @@ var build$2 = (...args) => {
1941
1955
  return webpackBuildConfig;
1942
1956
  };
1943
1957
 
1944
- const webpack = require$$0__default$7;
1958
+ const webpack = require$$0__default$8;
1945
1959
  const webBuildConfig = build$2;
1946
1960
  const {
1947
- createTask: createTask$1
1961
+ createTask: createTask$2
1948
1962
  } = widgets;
1949
1963
  const {
1950
1964
  fail
@@ -1967,7 +1981,7 @@ var buildServer = async (...args) => {
1967
1981
  const {
1968
1982
  err,
1969
1983
  stats
1970
- } = await createTask$1(compilerRun, '开始webpack打包编译', 'webpack打包编译完成')(compiler);
1984
+ } = await createTask$2(compilerRun, '开始webpack打包编译', 'webpack打包编译完成')(compiler);
1971
1985
 
1972
1986
  if (err) {
1973
1987
  fail(err);
@@ -1984,16 +1998,16 @@ var buildServer = async (...args) => {
1984
1998
  return compiler;
1985
1999
  };
1986
2000
 
1987
- const shelljs = require$$5__default;
2001
+ const shelljs$1 = require$$0__default$1;
1988
2002
  const webpackBuildServer = buildServer;
1989
2003
  const {
1990
- resolve
2004
+ resolve: resolve$1
1991
2005
  } = widgets;
1992
2006
  const init$3 = init$5;
1993
2007
 
1994
2008
  async function build$1(tmsConfig, targetModules, env) {
1995
2009
  // 开始构建前,清理输出目录
1996
- await shelljs.rm('-rf', resolve('dist'));
2010
+ await shelljs$1.rm('-rf', resolve$1('dist'));
1997
2011
  const {
1998
2012
  targetModules: newModules
1999
2013
  } = await init$3(tmsConfig, targetModules);
@@ -2002,11 +2016,57 @@ async function build$1(tmsConfig, targetModules, env) {
2002
2016
 
2003
2017
  var build_1 = build$1;
2004
2018
 
2019
+ const shelljs = require$$0__default$1;
2020
+ const {
2021
+ createTask: createTask$1
2022
+ } = widgets;
2023
+ const {
2024
+ buildMpNpm
2025
+ } = mpCiUtils;
2026
+ const glob = require$$3__default$1;
2027
+ const path = require$$1__default$1;
2028
+
2029
+ function npmInstall(contextDir) {
2030
+ return new Promise((resolve, reject) => {
2031
+ glob(`${contextDir}/**/package.json`, ['node_modules', 'miniprogram_npm'], (err, files) => {
2032
+ console.log('files', files);
2033
+
2034
+ if (err) {
2035
+ reject(err);
2036
+ }
2037
+
2038
+ files.forEach(file => {
2039
+ const dir = path.dirname(file);
2040
+ shelljs.cd(dir);
2041
+ shelljs.exec('npx pnpm install --prod --registry http://mirrors.tencent.com/npm/', {
2042
+ silent: false
2043
+ });
2044
+ });
2045
+ resolve();
2046
+ });
2047
+ });
2048
+ }
2049
+
2050
+ async function install$1(contextDir) {
2051
+ // npm install
2052
+ await createTask$1(npmInstall, '开始npm install', 'npm install完成')(contextDir); // 构建miniprograme_npm
2053
+
2054
+ await createTask$1(buildMpNpm, '开始构建miniprogram_npm', '构建miniprogram_npm 完成')({
2055
+ appId: 'null',
2056
+ projectPath: contextDir,
2057
+ privateKey: 'null'
2058
+ });
2059
+ }
2060
+
2061
+ var install_1 = install$1;
2062
+
2005
2063
  const init$2 = init$5;
2006
2064
  const dev = dev_1;
2007
2065
  const build = build_1;
2066
+ const install = install_1;
2008
2067
  const {
2009
- createTask
2068
+ createTask,
2069
+ resolve
2010
2070
  } = widgets;
2011
2071
  const {
2012
2072
  MODE
@@ -2032,6 +2092,11 @@ const handleModulesArg = cmd => {
2032
2092
  };
2033
2093
 
2034
2094
  async function run(commandName, cmd) {
2095
+ if (commandName === 'install') {
2096
+ install(resolve('./'));
2097
+ return;
2098
+ }
2099
+
2035
2100
  const moduleArg = handleModulesArg(cmd);
2036
2101
  const {
2037
2102
  env
@@ -2086,7 +2151,7 @@ var entry = [{
2086
2151
 
2087
2152
  var require$$6 = {
2088
2153
  name: "@tmsfe/tmskit",
2089
- version: "0.0.2",
2154
+ version: "0.0.3",
2090
2155
  description: "tmskit",
2091
2156
  main: "main.js",
2092
2157
  bin: {
@@ -2107,47 +2172,48 @@ var require$$6 = {
2107
2172
  "@rollup/plugin-babel": "^5.0.2",
2108
2173
  "@rollup/plugin-commonjs": "^19.0.0",
2109
2174
  "@rollup/plugin-dynamic-import-vars": "^1.1.1",
2110
- "@rollup/plugin-json": "^4.0.3"
2175
+ "@rollup/plugin-json": "^4.0.3",
2176
+ rollup: "^2.6.1",
2177
+ "rollup-plugin-node-resolve": "^5.2.0",
2178
+ "rollup-plugin-replace": "^2.2.0",
2179
+ "rollup-plugin-terser": "^6.1.0",
2180
+ "rollup-plugin-typescript2": "0.27.0"
2111
2181
  },
2112
2182
  dependencies: {
2113
2183
  "@babel/core": "^7.15.0",
2114
2184
  "@babel/plugin-transform-modules-commonjs": "^7.16.0",
2115
2185
  "@babel/preset-env": "^7.16.0",
2116
2186
  async: "^3.2.2",
2187
+ axios: "^0.21.4",
2117
2188
  "babel-core": "^6.26.3",
2118
2189
  "babel-loader": "^8.2.3",
2119
- "copy-webpack-plugin": "^9.1.0",
2120
- "cross-env": "^7.0.3",
2121
- leven: "3.1.0",
2122
- metalsmith: "^2.3.0",
2123
- minimist: "^1.2.5",
2124
- rollup: "^2.6.1",
2125
- "rollup-plugin-node-resolve": "^5.2.0",
2126
- "rollup-plugin-terser": "^6.1.0",
2127
- "rollup-plugin-typescript2": "0.27.0",
2128
- "ts-loader": "^9.2.6",
2129
- "url-loader": "^4.1.1",
2130
- webpack: "^5.64.0",
2131
- "webpack-cli": "^4.9.1",
2132
- axios: "^0.21.4",
2133
2190
  chalk: "^4.1.0",
2134
2191
  commander: "^6.2.1",
2192
+ "copy-webpack-plugin": "^9.1.0",
2193
+ "cross-env": "^7.0.3",
2135
2194
  "download-git-repo": "^3.0.2",
2136
2195
  ejs: "^3.1.5",
2137
2196
  "file-loader": "^6.2.0",
2138
2197
  "fs-extra": "^9.0.1",
2198
+ "glob-ignore": "^1.0.2",
2139
2199
  inquirer: "^7.3.3",
2200
+ leven: "3.1.0",
2140
2201
  lodash: "^4.17.21",
2202
+ metalsmith: "^2.3.0",
2141
2203
  "mini-css-extract-plugin": "^2.4.5",
2204
+ minimist: "^1.2.5",
2142
2205
  "miniprogram-ci": "1.4.13",
2143
2206
  ora: "^5.1.0",
2144
2207
  "replace-ext": "^2.0.0",
2145
- "rollup-plugin-replace": "^2.2.0",
2146
2208
  shelljs: "^0.8.4",
2209
+ "ts-loader": "^9.2.6",
2147
2210
  tslib: "^1.14.1",
2148
2211
  typescript: "^3.8.3",
2212
+ "url-loader": "^4.1.1",
2149
2213
  username: "5.1.0",
2150
- "webpack-chain": "^6.5.1"
2214
+ webpack: "^5.64.0",
2215
+ "webpack-chain": "^6.5.1",
2216
+ "webpack-cli": "^4.9.1"
2151
2217
  },
2152
2218
  engines: {
2153
2219
  node: "^12.17.0 || >= 14.0.0"
@@ -2159,10 +2225,10 @@ var require$$6 = {
2159
2225
 
2160
2226
  const {
2161
2227
  exec
2162
- } = require$$5__default;
2228
+ } = require$$0__default$1;
2163
2229
  const semver = require$$1__default$5;
2164
2230
  const packageJson = require$$6;
2165
- const chalk$1 = require$$0__default$1;
2231
+ const chalk$1 = require$$0__default$2;
2166
2232
  const {
2167
2233
  log: log$1
2168
2234
  } = widgets;
@@ -2201,7 +2267,7 @@ function initCliContext() {
2201
2267
 
2202
2268
  var init$1 = initCliContext;
2203
2269
 
2204
- const chalk = require$$0__default$1;
2270
+ const chalk = require$$0__default$2;
2205
2271
  const program = require$$0__default;
2206
2272
  const {
2207
2273
  log,