@spcsn/taro-cli 0.1.0

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 (213) hide show
  1. package/LICENSE +174 -0
  2. package/README.md +0 -0
  3. package/bin/taro +7 -0
  4. package/dist/cli.d.ts +6 -0
  5. package/dist/cli.js +266 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/customCommand.d.ts +5 -0
  8. package/dist/commands/customCommand.js +23 -0
  9. package/dist/commands/customCommand.js.map +1 -0
  10. package/dist/config/index.d.ts +8 -0
  11. package/dist/config/index.js +10 -0
  12. package/dist/config/index.js.map +1 -0
  13. package/dist/config/packagesManagement.d.ts +19 -0
  14. package/dist/config/packagesManagement.js +22 -0
  15. package/dist/config/packagesManagement.js.map +1 -0
  16. package/dist/create/constants.d.ts +1 -0
  17. package/dist/create/constants.js +5 -0
  18. package/dist/create/constants.js.map +1 -0
  19. package/dist/create/creator.d.ts +9 -0
  20. package/dist/create/creator.js +64 -0
  21. package/dist/create/creator.js.map +1 -0
  22. package/dist/create/fetchTemplate.d.ts +8 -0
  23. package/dist/create/fetchTemplate.js +169 -0
  24. package/dist/create/fetchTemplate.js.map +1 -0
  25. package/dist/create/page.d.ts +65 -0
  26. package/dist/create/page.js +266 -0
  27. package/dist/create/page.js.map +1 -0
  28. package/dist/create/plugin.d.ts +16 -0
  29. package/dist/create/plugin.js +77 -0
  30. package/dist/create/plugin.js.map +1 -0
  31. package/dist/create/project.d.ts +70 -0
  32. package/dist/create/project.js +481 -0
  33. package/dist/create/project.js.map +1 -0
  34. package/dist/doctor/index.d.ts +4 -0
  35. package/dist/doctor/index.js +23 -0
  36. package/dist/doctor/index.js.map +1 -0
  37. package/dist/index.d.ts +16 -0
  38. package/dist/index.js +24 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/presets/commands/build.d.ts +3 -0
  41. package/dist/presets/commands/build.js +236 -0
  42. package/dist/presets/commands/build.js.map +1 -0
  43. package/dist/presets/commands/config.d.ts +3 -0
  44. package/dist/presets/commands/config.js +121 -0
  45. package/dist/presets/commands/config.js.map +1 -0
  46. package/dist/presets/commands/create.d.ts +3 -0
  47. package/dist/presets/commands/create.js +112 -0
  48. package/dist/presets/commands/create.js.map +1 -0
  49. package/dist/presets/commands/global-config.d.ts +3 -0
  50. package/dist/presets/commands/global-config.js +175 -0
  51. package/dist/presets/commands/global-config.js.map +1 -0
  52. package/dist/presets/commands/help.d.ts +3 -0
  53. package/dist/presets/commands/help.js +16 -0
  54. package/dist/presets/commands/help.js.map +1 -0
  55. package/dist/presets/commands/info.d.ts +3 -0
  56. package/dist/presets/commands/info.js +96 -0
  57. package/dist/presets/commands/info.js.map +1 -0
  58. package/dist/presets/commands/init.d.ts +3 -0
  59. package/dist/presets/commands/init.js +46 -0
  60. package/dist/presets/commands/init.js.map +1 -0
  61. package/dist/presets/commands/inspect.d.ts +3 -0
  62. package/dist/presets/commands/inspect.js +155 -0
  63. package/dist/presets/commands/inspect.js.map +1 -0
  64. package/dist/presets/commands/update.d.ts +3 -0
  65. package/dist/presets/commands/update.js +187 -0
  66. package/dist/presets/commands/update.js.map +1 -0
  67. package/dist/presets/constant/hooks.d.ts +13 -0
  68. package/dist/presets/constant/hooks.js +17 -0
  69. package/dist/presets/constant/hooks.js.map +1 -0
  70. package/dist/presets/constant/index.d.ts +1 -0
  71. package/dist/presets/constant/index.js +18 -0
  72. package/dist/presets/constant/index.js.map +1 -0
  73. package/dist/presets/files/generateFrameworkInfo.d.ts +3 -0
  74. package/dist/presets/files/generateFrameworkInfo.js +30 -0
  75. package/dist/presets/files/generateFrameworkInfo.js.map +1 -0
  76. package/dist/presets/files/generateProjectConfig.d.ts +3 -0
  77. package/dist/presets/files/generateProjectConfig.js +72 -0
  78. package/dist/presets/files/generateProjectConfig.js.map +1 -0
  79. package/dist/presets/files/writeFileToDist.d.ts +3 -0
  80. package/dist/presets/files/writeFileToDist.js +50 -0
  81. package/dist/presets/files/writeFileToDist.js.map +1 -0
  82. package/dist/presets/hooks/build.d.ts +3 -0
  83. package/dist/presets/hooks/build.js +55 -0
  84. package/dist/presets/hooks/build.js.map +1 -0
  85. package/dist/presets/hooks/create.d.ts +3 -0
  86. package/dist/presets/hooks/create.js +42 -0
  87. package/dist/presets/hooks/create.js.map +1 -0
  88. package/dist/presets/index.d.ts +4 -0
  89. package/dist/presets/index.js +50 -0
  90. package/dist/presets/index.js.map +1 -0
  91. package/dist/presets/platforms/plugin.d.ts +3 -0
  92. package/dist/presets/platforms/plugin.js +106 -0
  93. package/dist/presets/platforms/plugin.js.map +1 -0
  94. package/dist/presets/platforms/rn.d.ts +3 -0
  95. package/dist/presets/platforms/rn.js +130 -0
  96. package/dist/presets/platforms/rn.js.map +1 -0
  97. package/dist/util/appConfig.d.ts +11 -0
  98. package/dist/util/appConfig.js +27 -0
  99. package/dist/util/appConfig.js.map +1 -0
  100. package/dist/util/createPage.d.ts +9 -0
  101. package/dist/util/createPage.js +114 -0
  102. package/dist/util/createPage.js.map +1 -0
  103. package/dist/util/defineConfig.d.ts +17 -0
  104. package/dist/util/defineConfig.js +11 -0
  105. package/dist/util/defineConfig.js.map +1 -0
  106. package/dist/util/index.d.ts +23 -0
  107. package/dist/util/index.js +149 -0
  108. package/dist/util/index.js.map +1 -0
  109. package/dist/util/types.d.ts +58 -0
  110. package/dist/util/types.js +3 -0
  111. package/dist/util/types.js.map +1 -0
  112. package/global.d.ts +4 -0
  113. package/index.js +3 -0
  114. package/package.json +74 -0
  115. package/postinstall.js +17 -0
  116. package/src/__tests__/__mocks__/presets.ts +15 -0
  117. package/src/__tests__/build-config.spec.ts +66 -0
  118. package/src/__tests__/cli.spec.ts +226 -0
  119. package/src/__tests__/config.spec.ts +224 -0
  120. package/src/__tests__/doctor-config.spec.ts +943 -0
  121. package/src/__tests__/doctor-recommand.spec.ts +136 -0
  122. package/src/__tests__/doctor.spec.ts +94 -0
  123. package/src/__tests__/dotenv-parse.spec.ts +105 -0
  124. package/src/__tests__/env/.env +2 -0
  125. package/src/__tests__/fixtures/default/.env +3 -0
  126. package/src/__tests__/fixtures/default/.env.development +1 -0
  127. package/src/__tests__/fixtures/default/.env.local +1 -0
  128. package/src/__tests__/fixtures/default/.env.pre +3 -0
  129. package/src/__tests__/fixtures/default/.env.production +1 -0
  130. package/src/__tests__/fixtures/default/.env.uat +5 -0
  131. package/src/__tests__/fixtures/default/.env.uat.local +1 -0
  132. package/src/__tests__/fixtures/default/babel.config.js +10 -0
  133. package/src/__tests__/fixtures/default/config/dev.js +9 -0
  134. package/src/__tests__/fixtures/default/config/index.js +84 -0
  135. package/src/__tests__/fixtures/default/config/prod.js +18 -0
  136. package/src/__tests__/fixtures/default/package.json +27 -0
  137. package/src/__tests__/fixtures/default/src/app.config.js +11 -0
  138. package/src/__tests__/fixtures/default/src/app.js +16 -0
  139. package/src/__tests__/fixtures/default/src/app.scss +0 -0
  140. package/src/__tests__/fixtures/default/src/index.html +19 -0
  141. package/src/__tests__/fixtures/default/src/pages/index/index.config.js +3 -0
  142. package/src/__tests__/fixtures/default/src/pages/index/index.jsx +22 -0
  143. package/src/__tests__/fixtures/default/src/pages/index/index.scss +0 -0
  144. package/src/__tests__/info.spec.ts +72 -0
  145. package/src/__tests__/inspect.spec.ts +160 -0
  146. package/src/__tests__/update.spec.ts +310 -0
  147. package/src/__tests__/utils/index.ts +54 -0
  148. package/src/cli.ts +240 -0
  149. package/src/commands/customCommand.ts +22 -0
  150. package/src/config/index.ts +7 -0
  151. package/src/config/manifest.default.json +33 -0
  152. package/src/config/packagesManagement.ts +20 -0
  153. package/src/config/rn-stylelint.json +4 -0
  154. package/src/config/tsconfig.json +22 -0
  155. package/src/create/constants.ts +1 -0
  156. package/src/create/creator.ts +37 -0
  157. package/src/create/fetchTemplate.ts +161 -0
  158. package/src/create/page.ts +325 -0
  159. package/src/create/plugin.ts +55 -0
  160. package/src/create/project.ts +539 -0
  161. package/src/doctor/index.ts +21 -0
  162. package/src/index.ts +24 -0
  163. package/src/presets/commands/build.ts +215 -0
  164. package/src/presets/commands/config.ts +86 -0
  165. package/src/presets/commands/create.ts +104 -0
  166. package/src/presets/commands/global-config.ts +140 -0
  167. package/src/presets/commands/help.ts +17 -0
  168. package/src/presets/commands/info.ts +81 -0
  169. package/src/presets/commands/init.ts +63 -0
  170. package/src/presets/commands/inspect.ts +137 -0
  171. package/src/presets/commands/update.ts +175 -0
  172. package/src/presets/constant/hooks.ts +14 -0
  173. package/src/presets/constant/index.ts +1 -0
  174. package/src/presets/files/generateFrameworkInfo.ts +30 -0
  175. package/src/presets/files/generateProjectConfig.ts +41 -0
  176. package/src/presets/files/writeFileToDist.ts +17 -0
  177. package/src/presets/hooks/build.ts +22 -0
  178. package/src/presets/hooks/create.ts +9 -0
  179. package/src/presets/index.ts +15 -0
  180. package/src/presets/platforms/plugin.ts +75 -0
  181. package/src/presets/platforms/rn.ts +125 -0
  182. package/src/util/appConfig.ts +32 -0
  183. package/src/util/createPage.ts +139 -0
  184. package/src/util/defineConfig.ts +28 -0
  185. package/src/util/index.ts +126 -0
  186. package/src/util/types.ts +81 -0
  187. package/templates/default/_editorconfig +12 -0
  188. package/templates/default/_env.development +2 -0
  189. package/templates/default/_env.production +1 -0
  190. package/templates/default/_env.test +1 -0
  191. package/templates/default/_gitignore +8 -0
  192. package/templates/default/babel.config.js +14 -0
  193. package/templates/default/config/dev.js +5 -0
  194. package/templates/default/config/index.js +61 -0
  195. package/templates/default/config/prod.js +5 -0
  196. package/templates/default/package.json.tmpl +52 -0
  197. package/templates/default/project.config.json +15 -0
  198. package/templates/default/src/app.config.js +11 -0
  199. package/templates/default/src/app.css +0 -0
  200. package/templates/default/src/app.js +15 -0
  201. package/templates/default/src/pages/index/index.config.js +3 -0
  202. package/templates/default/src/pages/index/index.css +0 -0
  203. package/templates/default/src/pages/index/index.jsx +15 -0
  204. package/templates/default/template_creator.js +61 -0
  205. package/templates/default/tsconfig.json +30 -0
  206. package/templates/default/types/global.d.ts +27 -0
  207. package/templates/global-config/index.json +4 -0
  208. package/templates/global-config/package.json +5 -0
  209. package/templates/plugin-compile/README.md +32 -0
  210. package/templates/plugin-compile/index.js +3 -0
  211. package/templates/plugin-compile/package.json.tmpl +43 -0
  212. package/templates/plugin-compile/src/index.ts +153 -0
  213. package/templates/plugin-compile/tsconfig.json +28 -0
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const path = __importStar(require("node:path"));
40
+ const ora_1 = __importDefault(require("ora"));
41
+ const validatePkgName = __importStar(require("validate-npm-package-name"));
42
+ const util_1 = require("../../util");
43
+ const PRESET_OR_PLUGIN_COMMAND_CHINESE_MAP_MAP = {
44
+ install: '添加',
45
+ uninstall: '删除',
46
+ };
47
+ const PRESET_OR_PLUGIN_CHINESE_NAME_MAP = {
48
+ plugin: '插件',
49
+ preset: '插件集',
50
+ };
51
+ const PLUGIN_TYPE_TO_CONFIG_KEY = {
52
+ plugin: 'plugins',
53
+ preset: 'presets',
54
+ };
55
+ exports.default = (ctx) => {
56
+ ctx.registerCommand({
57
+ name: 'global-config',
58
+ synopsisList: [
59
+ 'taro global-config add-plugin [pluginName]',
60
+ 'taro global-config remove-plugin [pluginName]',
61
+ 'taro global-config add-preset [presetName]',
62
+ 'taro global-config remove-preset [presetName]',
63
+ 'taro global-config reset',
64
+ ],
65
+ optionsMap: {
66
+ '-r --registry [url]': '指定 npm registry',
67
+ '-h, --help': 'output usage information',
68
+ },
69
+ fn({ _, options }) {
70
+ const [, action, pluginName] = _;
71
+ const { getUserHomeDir, TARO_GLOBAL_CONFIG_DIR, fs, TARO_GLOBAL_CONFIG_FILE } = ctx.helper;
72
+ const homedir = getUserHomeDir();
73
+ const globalPluginConfigDir = path.join(homedir, TARO_GLOBAL_CONFIG_DIR);
74
+ if (!homedir)
75
+ return console.log('找不到用户根目录');
76
+ const rootPath = (0, util_1.getRootPath)();
77
+ const templatePath = path.join(rootPath, 'templates', 'global-config');
78
+ const registry = options.registry || options.r;
79
+ function makeSureConfigExists() {
80
+ if (!fs.existsSync(globalPluginConfigDir)) {
81
+ const spinner = (0, ora_1.default)(`目录不存在,全局配置初始化`).start();
82
+ try {
83
+ fs.copySync(templatePath, globalPluginConfigDir);
84
+ spinner.succeed(`全局配置初始化成功,${globalPluginConfigDir}`);
85
+ }
86
+ catch (e) {
87
+ spinner.fail(`全局配置初始化失败,${e}`);
88
+ process.exit(1);
89
+ }
90
+ }
91
+ }
92
+ function addOrRemovePresetOrPlugin(actionType, pluginType) {
93
+ makeSureConfigExists();
94
+ const presetOrPluginChineseName = PRESET_OR_PLUGIN_CHINESE_NAME_MAP[pluginType];
95
+ const chineseCommand = PRESET_OR_PLUGIN_COMMAND_CHINESE_MAP_MAP[actionType];
96
+ if (!pluginName) {
97
+ console.error(`缺少要${chineseCommand}的${presetOrPluginChineseName}`);
98
+ process.exit(1);
99
+ }
100
+ const spinner = (0, ora_1.default)(`开始${chineseCommand}${presetOrPluginChineseName} ${pluginName}`).start();
101
+ const pluginWithoutVersionName = (0, util_1.getPkgNameByFilterVersion)(pluginName);
102
+ if (!validatePkgName(pluginWithoutVersionName).validForNewPackages) {
103
+ spinner.fail('安装的插件名不合规!');
104
+ process.exit(1);
105
+ }
106
+ let command = `cd ${globalPluginConfigDir} && npm ${actionType} ${pluginName}`;
107
+ if (registry) {
108
+ command += ` --registry=${registry}`;
109
+ }
110
+ (0, util_1.execCommand)({
111
+ command,
112
+ successCallback(data) {
113
+ console.log(data.replace(/\n$/, ''));
114
+ spinner.start(`开始修改${presetOrPluginChineseName}配置`);
115
+ const configFilePath = path.join(globalPluginConfigDir, TARO_GLOBAL_CONFIG_FILE);
116
+ let globalConfig;
117
+ try {
118
+ globalConfig = fs.readJSONSync(configFilePath);
119
+ }
120
+ catch (e) {
121
+ spinner.fail('获取配置文件失败');
122
+ }
123
+ const configKey = PLUGIN_TYPE_TO_CONFIG_KEY[pluginType];
124
+ const configItem = globalConfig[configKey] || [];
125
+ const pluginIndex = configItem.findIndex((item) => {
126
+ if (typeof item === 'string')
127
+ return item === pluginWithoutVersionName;
128
+ if (item instanceof Array)
129
+ return item?.[0] === pluginWithoutVersionName;
130
+ });
131
+ const shouldChangeFile = !(Number(pluginIndex !== -1) ^ Number(actionType === 'uninstall'));
132
+ if (shouldChangeFile) {
133
+ actionType === 'install' ? configItem.push(pluginWithoutVersionName) : configItem.splice(pluginIndex, 1);
134
+ try {
135
+ fs.writeJSONSync(configFilePath, {
136
+ [configKey]: configItem,
137
+ });
138
+ }
139
+ catch (e) {
140
+ spinner.fail(`修改配置文件失败:${e}`);
141
+ }
142
+ }
143
+ spinner.succeed('修改配置文件成功');
144
+ },
145
+ failCallback(data) {
146
+ spinner.stop();
147
+ spinner.warn(data.replace(/\n$/, ''));
148
+ },
149
+ });
150
+ }
151
+ switch (action) {
152
+ case 'add-plugin':
153
+ addOrRemovePresetOrPlugin('install', 'plugin');
154
+ break;
155
+ case 'remove-plugin':
156
+ addOrRemovePresetOrPlugin('uninstall', 'plugin');
157
+ break;
158
+ case 'add-preset':
159
+ addOrRemovePresetOrPlugin('install', 'preset');
160
+ break;
161
+ case 'remove-preset':
162
+ addOrRemovePresetOrPlugin('uninstall', 'preset');
163
+ break;
164
+ case 'reset':
165
+ if (fs.existsSync(globalPluginConfigDir))
166
+ fs.removeSync(globalPluginConfigDir);
167
+ fs.copySync(templatePath, globalPluginConfigDir);
168
+ break;
169
+ default:
170
+ console.error('请输出正确的参数');
171
+ }
172
+ },
173
+ });
174
+ };
175
+ //# sourceMappingURL=global-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../../src/presets/commands/global-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { IPluginContext } from '@spcsn/taro-service';
2
+ declare const _default: (ctx: IPluginContext) => void;
3
+ export default _default;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const taro_helper_1 = require("@spcsn/taro-helper");
4
+ exports.default = (ctx) => {
5
+ ctx.registerCommand({
6
+ name: 'help',
7
+ synopsisList: ['taro help [cmd]'],
8
+ async fn({ _ }) {
9
+ const cmd = _[1];
10
+ if (!cmd)
11
+ return console.log(taro_helper_1.chalk.yellow('用法:taro help [cmd],cmd 不存在!请输入需要查看帮助的命令名称。'));
12
+ ctx.ctx.runHelp(cmd);
13
+ },
14
+ });
15
+ };
16
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/presets/commands/help.ts"],"names":[],"mappings":";;AAAA,oDAA2C;AAI3C,kBAAe,CAAC,GAAmB,EAAE,EAAE;IACrC,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACZ,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,CAAC,GAAG;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAEzF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IPluginContext } from '@spcsn/taro-service';
2
+ declare const _default: (ctx: IPluginContext) => void;
3
+ export default _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const path = __importStar(require("node:path"));
37
+ const envinfo = __importStar(require("envinfo"));
38
+ const util_1 = require("../../util");
39
+ exports.default = (ctx) => {
40
+ ctx.registerCommand({
41
+ name: 'info',
42
+ synopsisList: ['taro info', 'taro info rn'],
43
+ async fn({ _ }) {
44
+ const rn = _[1] === 'rn';
45
+ const { fs, chalk, PROJECT_CONFIG } = ctx.helper;
46
+ const { appPath, configPath } = ctx.paths;
47
+ if (!configPath || !fs.existsSync(configPath)) {
48
+ console.log(chalk.red(`找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是 Taro 项目根目录!`));
49
+ process.exit(1);
50
+ }
51
+ if (rn) {
52
+ const tempPath = path.join(appPath, '.rn_temp');
53
+ if (fs.lstatSync(tempPath).isDirectory()) {
54
+ process.chdir('.rn_temp');
55
+ }
56
+ }
57
+ await info({}, ctx);
58
+ },
59
+ });
60
+ };
61
+ // 单独function获取@jdtaro相关的包
62
+ function getJdtaroPackages(ctx) {
63
+ try {
64
+ const { appPath } = ctx.paths;
65
+ const fs = ctx.helper.fs;
66
+ const packageJsonPath = path.join(appPath, 'package.json');
67
+ if (fs.existsSync(packageJsonPath)) {
68
+ const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
69
+ const packageJson = JSON.parse(packageJsonContent);
70
+ const dependencies = Object.assign({}, packageJson.dependencies || {}, packageJson.devDependencies || {});
71
+ // 筛选出@jdtaro相关的包
72
+ return Object.keys(dependencies).filter((pkg) => pkg.startsWith('@jdtaro/'));
73
+ }
74
+ }
75
+ catch (error) {
76
+ // 记录错误但不中断程序执行(添加trycatch)
77
+ console.error('读取或解析package.json时发生错误:', error instanceof Error ? error.message : String(error));
78
+ }
79
+ return [];
80
+ }
81
+ async function info(options, ctx) {
82
+ let npmPackages = ctx.helper.UPDATE_PACKAGE_LIST.concat(['react', 'react-native', 'expo', 'taro-ui']);
83
+ // 调用新函数获取@jdtaro相关包
84
+ const jdtaroPackages = getJdtaroPackages(ctx);
85
+ npmPackages = npmPackages.concat(jdtaroPackages);
86
+ const info = await envinfo.run(Object.assign({}, {
87
+ System: ['OS', 'Shell'],
88
+ Binaries: ['Node', 'Yarn', 'npm'],
89
+ npmPackages,
90
+ npmGlobalPackages: ['typescript'],
91
+ }, options), {
92
+ title: `Taro CLI ${(0, util_1.getPkgVersion)()} environment info`,
93
+ });
94
+ console.log(info);
95
+ }
96
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/presets/commands/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { IPluginContext } from '@spcsn/taro-service';
2
+ declare const _default: (ctx: IPluginContext) => void;
3
+ export default _default;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (ctx) => {
4
+ ctx.registerCommand({
5
+ name: 'init',
6
+ optionsMap: {
7
+ '--name [name]': '项目名称',
8
+ '--description [description]': '项目介绍',
9
+ '--typescript': '使用TypeScript',
10
+ '--build-es5': '是否需要编译为es5',
11
+ '--npm [npm]': '包管理工具',
12
+ '--template-source [templateSource]': '项目模板源',
13
+ '--clone [clone]': '拉取远程模板时使用git clone',
14
+ '--template [template]': '项目模板',
15
+ '--css [css]': 'CSS预处理器(sass/less/stylus/none)',
16
+ '--autoInstall': '自动安装依赖',
17
+ '-h, --help': 'output usage information',
18
+ },
19
+ async fn(opts) {
20
+ // init project
21
+ const { appPath } = ctx.paths;
22
+ const { projectName, templateSource, clone, template, description, typescript, buildEs5, css, npm, framework, compiler, hideDefaultTemplate, sourceRoot, autoInstall, ask, } = opts.options;
23
+ const Project = require('../../create/project').default;
24
+ const project = new Project({
25
+ sourceRoot,
26
+ projectName,
27
+ projectDir: appPath,
28
+ npm,
29
+ templateSource,
30
+ clone,
31
+ template,
32
+ description,
33
+ typescript,
34
+ buildEs5,
35
+ framework,
36
+ compiler,
37
+ hideDefaultTemplate,
38
+ autoInstall,
39
+ css,
40
+ ask,
41
+ });
42
+ project.create();
43
+ },
44
+ });
45
+ };
46
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/presets/commands/init.ts"],"names":[],"mappings":";;AAEA,kBAAe,CAAC,GAAmB,EAAE,EAAE;IACrC,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE;YACV,eAAe,EAAE,MAAM;YACvB,6BAA6B,EAAE,MAAM;YACrC,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,OAAO;YACtB,oCAAoC,EAAE,OAAO;YAC7C,iBAAiB,EAAE,oBAAoB;YACvC,uBAAuB,EAAE,MAAM;YAC/B,aAAa,EAAE,gCAAgC;YAC/C,eAAe,EAAE,QAAQ;YACzB,YAAY,EAAE,0BAA0B;SACzC;QACD,KAAK,CAAC,EAAE,CAAC,IAAI;YACX,eAAe;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;YAC9B,MAAM,EACJ,WAAW,EACX,cAAc,EACd,KAAK,EACL,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,GAAG,EACH,GAAG,EACH,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,GAAG,GACJ,GAAG,IAAI,CAAC,OAAO,CAAC;YAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;gBAC1B,UAAU;gBACV,WAAW;gBACX,UAAU,EAAE,OAAO;gBACnB,GAAG;gBACH,cAAc;gBACd,KAAK;gBACL,QAAQ;gBACR,WAAW;gBACX,UAAU;gBACV,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,mBAAmB;gBACnB,WAAW;gBACX,GAAG;gBACH,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IPluginContext } from '@spcsn/taro-service';
2
+ declare const _default: (ctx: IPluginContext) => void;
3
+ export default _default;
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const path = __importStar(require("node:path"));
37
+ const taro_helper_1 = require("@spcsn/taro-helper");
38
+ const taro_shared_1 = require("@spcsn/taro-shared");
39
+ const hooks = __importStar(require("../constant"));
40
+ exports.default = (ctx) => {
41
+ ctx.registerCommand({
42
+ name: 'inspect',
43
+ optionsMap: {
44
+ '-t, --type [typeName]': 'Build type, weapp',
45
+ '-o, --output [outputPath]': 'output config to outputPath',
46
+ },
47
+ synopsisList: [
48
+ 'taro inspect --type weapp',
49
+ 'taro inspect --type weapp --output inspect.config.js',
50
+ 'taro inspect --type weapp plugins',
51
+ 'taro inspect --type weapp module.rules.0',
52
+ ],
53
+ async fn({ _, options }) {
54
+ const { fs, chalk } = ctx.helper;
55
+ const platform = options.type || options.t;
56
+ verifyIsTaroProject(ctx);
57
+ verifyPlatform(platform, chalk);
58
+ const configName = ctx.platforms.get(platform)?.useConfigName || '';
59
+ process.env.TARO_ENV = platform;
60
+ process.env.TARO_PLATFORM = (0, taro_shared_1.getPlatformType)(platform, configName);
61
+ let config = getConfig(ctx, platform);
62
+ config = {
63
+ ...config,
64
+ ...config[configName],
65
+ };
66
+ delete config.mini;
67
+ delete config.h5;
68
+ const isProduction = process.env.NODE_ENV === 'production';
69
+ const outputPath = options.output || options.o;
70
+ const mode = outputPath ? 'output' : 'console';
71
+ const extractPath = _[1];
72
+ await ctx.applyPlugins({
73
+ name: platform,
74
+ opts: {
75
+ config: {
76
+ ...config,
77
+ isWatch: !isProduction,
78
+ mode: isProduction ? 'production' : 'development',
79
+ async modifyWebpackChain(chain, webpack, data) {
80
+ await ctx.applyPlugins({
81
+ name: hooks.MODIFY_WEBPACK_CHAIN,
82
+ initialVal: chain,
83
+ opts: {
84
+ chain,
85
+ webpack,
86
+ data,
87
+ },
88
+ });
89
+ },
90
+ onWebpackChainReady(chain) {
91
+ const webpackConfig = chain.toConfig();
92
+ const { toString } = chain.constructor;
93
+ const config = extractConfig(webpackConfig, extractPath);
94
+ const res = toString(config);
95
+ if (mode === 'console') {
96
+ const highlight = require('cli-highlight').default;
97
+ console.info(highlight(res, { language: 'js' }));
98
+ }
99
+ else if (mode === 'output' && outputPath) {
100
+ fs.writeFileSync(outputPath, res);
101
+ }
102
+ process.exit(0);
103
+ },
104
+ },
105
+ },
106
+ });
107
+ },
108
+ });
109
+ };
110
+ /** 是否 Taro 项目根路径 */
111
+ function verifyIsTaroProject(ctx) {
112
+ const { fs, chalk, PROJECT_CONFIG } = ctx.helper;
113
+ const { configPath } = ctx.paths;
114
+ if (!configPath || !fs.existsSync(configPath)) {
115
+ console.log(chalk.red(`找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是 Taro 项目根目录!`));
116
+ process.exit(1);
117
+ }
118
+ }
119
+ /** 检查平台类型 */
120
+ function verifyPlatform(platform, chalk) {
121
+ if (typeof platform !== 'string') {
122
+ console.log(chalk.red('请传入正确的编译类型!'));
123
+ process.exit(0);
124
+ }
125
+ if (platform !== 'weapp') {
126
+ console.log(chalk.red('当前 Fork 仅支持 weapp 平台检查。'));
127
+ process.exit(0);
128
+ }
129
+ }
130
+ /** 整理 config */
131
+ function getConfig(ctx, platform) {
132
+ const { initialConfig } = ctx;
133
+ const sourceDirName = initialConfig.sourceRoot || taro_helper_1.SOURCE_DIR;
134
+ const outputDirName = initialConfig.outputRoot || taro_helper_1.OUTPUT_DIR;
135
+ const sourceDir = path.join(ctx.appPath, sourceDirName);
136
+ const entryFilePath = (0, taro_helper_1.resolveScriptPath)(path.join(sourceDir, taro_helper_1.ENTRY));
137
+ const entry = {
138
+ [taro_helper_1.ENTRY]: [entryFilePath],
139
+ };
140
+ return {
141
+ ...initialConfig,
142
+ entry,
143
+ sourceRoot: sourceDirName,
144
+ outputRoot: outputDirName,
145
+ platform,
146
+ };
147
+ }
148
+ /** 按路径取出 webpackConfig 内的对应值 */
149
+ function extractConfig(webpackConfig, extractPath) {
150
+ if (!extractPath)
151
+ return webpackConfig;
152
+ const list = extractPath.split('.');
153
+ return list.reduce((config, current) => config[current], webpackConfig);
154
+ }
155
+ //# sourceMappingURL=inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/presets/commands/inspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { IPluginContext } from '@spcsn/taro-service';
2
+ declare const _default: (ctx: IPluginContext) => void;
3
+ export default _default;