zmp-cli 3.5.4 → 3.6.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.
- package/.vscode/launch.json +21 -0
- package/.vscode/settings.json +2 -1
- package/create/templates/common/tailwind/tailwind.config.js +1 -1
- package/create/templates/generate-index.js +1 -1
- package/create/templates/generate-routes.js +2 -2
- package/create/templates/generate-store.js +33 -0
- package/create/templates/generate-styles.js +19 -10
- package/create/templates/vue/components/header.vue +28 -0
- package/create/templates/vue/components/sun-and-moon.vue +34 -0
- package/create/templates/vue/copy-assets.js +28 -7
- package/create/templates/vue/dist/copy-assets.dev.js +1 -1
- package/create/templates/vue/generate-home-page.js +49 -103
- package/create/templates/vue/generate-root.js +30 -193
- package/create/templates/vue/generate-routes.js +2 -87
- package/create/templates/vue/generate-scripts.js +8 -3
- package/create/templates/vue/global-components.d.ts +121 -0
- package/create/templates/vue/icons/moon.svg +3 -0
- package/create/templates/vue/icons/sun.svg +3 -0
- package/create/templates/vue/pages/settings.vue +14 -158
- package/create/templates/vue/vite.config.js +11 -0
- package/create/utils/generate-package-json.js +14 -6
- package/create/utils/get-options.js +7 -8
- package/index.js +1 -0
- package/package.json +1 -1
- package/start/dist/index.dev.js +65 -28
- package/start/index.js +41 -4
- package/utils/find-files-by-ext.js +1 -1
- package/create/templates/common/icons/128x128.png +0 -0
- package/create/templates/common/icons/144x144.png +0 -0
- package/create/templates/common/icons/152x152.png +0 -0
- package/create/templates/common/icons/192x192.png +0 -0
- package/create/templates/common/icons/256x256.png +0 -0
|
@@ -6,7 +6,7 @@ module.exports = function generatePackageJson(options) {
|
|
|
6
6
|
|
|
7
7
|
// Dependencies
|
|
8
8
|
const dependencies = ['zmp-framework', 'zmp-sdk', 'swiper'];
|
|
9
|
-
const dependenciesVue = ['vue@3'];
|
|
9
|
+
const dependenciesVue = ['vue@3', 'zmp-framework@next'];
|
|
10
10
|
const dependenciesReact = ['react', 'react-dom', 'prop-types'];
|
|
11
11
|
const dependenciesReactTs = ['@types/react', '@types/react-dom'];
|
|
12
12
|
const tailwindDependencies = [
|
|
@@ -41,8 +41,16 @@ module.exports = function generatePackageJson(options) {
|
|
|
41
41
|
...[devDependenciesReact],
|
|
42
42
|
...(includeTailwind ? tailwindDependencies : [])
|
|
43
43
|
);
|
|
44
|
-
else if (framework === 'vue')
|
|
45
|
-
|
|
44
|
+
else if (framework === 'vue')
|
|
45
|
+
devDependencies.push(
|
|
46
|
+
...devDependenciesVue,
|
|
47
|
+
...(includeTailwind ? tailwindDependencies : [])
|
|
48
|
+
);
|
|
49
|
+
else if (framework === 'core')
|
|
50
|
+
devDependencies.push(
|
|
51
|
+
...devDependenciesCore,
|
|
52
|
+
...(includeTailwind ? tailwindDependencies : [])
|
|
53
|
+
);
|
|
46
54
|
|
|
47
55
|
// Scripts
|
|
48
56
|
const scripts = {};
|
|
@@ -64,9 +72,9 @@ module.exports = function generatePackageJson(options) {
|
|
|
64
72
|
const content = `
|
|
65
73
|
{
|
|
66
74
|
"name": "${name
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
.toLowerCase()
|
|
76
|
+
.replace(/[ ]{2,}/, ' ')
|
|
77
|
+
.replace(/ /g, '-')}",
|
|
70
78
|
"private": true,
|
|
71
79
|
"version": "1.0.0",
|
|
72
80
|
"description": "${name}",
|
|
@@ -40,14 +40,13 @@ const questions = [
|
|
|
40
40
|
name: 'ZMP with React (TypeScript)',
|
|
41
41
|
value: 'react-typescript',
|
|
42
42
|
},
|
|
43
|
-
{
|
|
44
|
-
name: 'ZMP Core',
|
|
45
|
-
value: 'core',
|
|
46
|
-
disabled: true,
|
|
47
|
-
},
|
|
48
43
|
{
|
|
49
44
|
name: 'ZMP with Vue.js',
|
|
50
45
|
value: 'vue',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'ZMP Core',
|
|
49
|
+
value: 'core',
|
|
51
50
|
disabled: true,
|
|
52
51
|
},
|
|
53
52
|
],
|
|
@@ -55,7 +54,7 @@ const questions = [
|
|
|
55
54
|
{
|
|
56
55
|
type: 'list',
|
|
57
56
|
name: 'useUIKits',
|
|
58
|
-
when: (opts) => opts.newProject,
|
|
57
|
+
when: (opts) => opts.newProject && opts.framework !== 'vue',
|
|
59
58
|
message: 'Do you want to use Zalo UI kits style?',
|
|
60
59
|
default: true,
|
|
61
60
|
choices: [
|
|
@@ -74,7 +73,7 @@ const questions = [
|
|
|
74
73
|
{
|
|
75
74
|
type: 'list',
|
|
76
75
|
name: 'template',
|
|
77
|
-
when: (opts) => opts.newProject && opts.useUIKits,
|
|
76
|
+
when: (opts) => opts.newProject && opts.useUIKits && opts.framework !== 'vue',
|
|
78
77
|
message: 'Choose starter template:',
|
|
79
78
|
choices: [
|
|
80
79
|
{
|
|
@@ -101,7 +100,7 @@ const questions = [
|
|
|
101
100
|
{
|
|
102
101
|
type: 'list',
|
|
103
102
|
name: 'template',
|
|
104
|
-
when: (opts) => opts.newProject && !opts.useUIKits,
|
|
103
|
+
when: (opts) => opts.newProject && !opts.useUIKits && opts.framework !== 'vue',
|
|
105
104
|
message: 'Choose starter template:',
|
|
106
105
|
choices: [
|
|
107
106
|
{
|
package/index.js
CHANGED
package/package.json
CHANGED
package/start/dist/index.dev.js
CHANGED
|
@@ -15,21 +15,20 @@ var ora = require('ora');
|
|
|
15
15
|
|
|
16
16
|
var path = require('path');
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var qrcode = require('qrcode-terminal');
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var logSymbols = require('log-symbols');
|
|
21
21
|
|
|
22
22
|
var _require = require('vite'),
|
|
23
23
|
createServer = _require.createServer;
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var config = require('../config');
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var envUtils = require('../utils/env');
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var fs = require('../utils/fs-extra');
|
|
30
30
|
|
|
31
|
-
var
|
|
32
|
-
resolve = _require2.resolve;
|
|
31
|
+
var fse = require('../utils/fs-extra');
|
|
33
32
|
|
|
34
33
|
var spinner = ora('Starting mini app...');
|
|
35
34
|
|
|
@@ -50,9 +49,12 @@ module.exports = function _callee() {
|
|
|
50
49
|
hrConfig,
|
|
51
50
|
localServer,
|
|
52
51
|
publicServer,
|
|
52
|
+
viteConfig,
|
|
53
|
+
isTypeScriptProject,
|
|
53
54
|
server,
|
|
54
55
|
app,
|
|
55
56
|
serverFrame,
|
|
57
|
+
info,
|
|
56
58
|
_args = arguments;
|
|
57
59
|
|
|
58
60
|
return regeneratorRuntime.async(function _callee$(_context) {
|
|
@@ -112,50 +114,65 @@ module.exports = function _callee() {
|
|
|
112
114
|
host: host
|
|
113
115
|
}
|
|
114
116
|
};
|
|
115
|
-
|
|
117
|
+
viteConfig = 'vite.config.js';
|
|
118
|
+
isTypeScriptProject = fse.existsSync(path.join(cwd, 'vite.config.ts'));
|
|
119
|
+
|
|
120
|
+
if (isTypeScriptProject) {
|
|
121
|
+
viteConfig = 'vite.config.ts';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
_context.next = 21;
|
|
116
125
|
return regeneratorRuntime.awrap(createServer({
|
|
117
|
-
configFile: path.join(cwd,
|
|
126
|
+
configFile: path.join(cwd, viteConfig),
|
|
118
127
|
root: cwd,
|
|
119
128
|
mode: previewOnZalo ? 'production' : 'development',
|
|
120
129
|
define: {
|
|
121
130
|
'process.env.NODE_ENV': JSON.stringify(previewOnZalo ? 'production' : 'development')
|
|
122
131
|
},
|
|
123
132
|
server: _objectSpread({
|
|
124
|
-
port: port
|
|
125
|
-
strictPort: true
|
|
133
|
+
port: port - 1
|
|
126
134
|
}, previewOnZalo ? publicServer : localServer)
|
|
127
135
|
}));
|
|
128
136
|
|
|
129
|
-
case
|
|
137
|
+
case 21:
|
|
130
138
|
server = _context.sent;
|
|
131
|
-
_context.next =
|
|
139
|
+
_context.next = 24;
|
|
132
140
|
return regeneratorRuntime.awrap(server.listen());
|
|
133
141
|
|
|
134
|
-
case
|
|
142
|
+
case 24:
|
|
135
143
|
app = _context.sent;
|
|
136
144
|
|
|
137
145
|
if (previewOnZalo) {
|
|
138
|
-
_context.next =
|
|
146
|
+
_context.next = 35;
|
|
139
147
|
break;
|
|
140
148
|
}
|
|
141
149
|
|
|
142
|
-
_context.next =
|
|
150
|
+
_context.next = 28;
|
|
143
151
|
return regeneratorRuntime.awrap(createServer({
|
|
144
152
|
// any valid user config options, plus `mode` and `configFile`
|
|
145
153
|
configFile: false,
|
|
146
154
|
root: __dirname + '/frame',
|
|
147
155
|
server: {
|
|
148
|
-
port: port + 1
|
|
156
|
+
port: app.httpServer.address().port + 1,
|
|
157
|
+
strictPort: true,
|
|
158
|
+
open: true
|
|
149
159
|
}
|
|
150
160
|
}));
|
|
151
161
|
|
|
152
|
-
case
|
|
162
|
+
case 28:
|
|
153
163
|
serverFrame = _context.sent;
|
|
154
|
-
|
|
164
|
+
_context.next = 31;
|
|
165
|
+
return regeneratorRuntime.awrap(serverFrame.listen());
|
|
166
|
+
|
|
167
|
+
case 31:
|
|
168
|
+
spinner.stop();
|
|
169
|
+
info = serverFrame.config.logger.info;
|
|
170
|
+
info(chalk.green("Zalo Mini App dev server is running at:\n"));
|
|
171
|
+
serverFrame.printUrls();
|
|
155
172
|
|
|
156
|
-
case
|
|
173
|
+
case 35:
|
|
157
174
|
spinner.stop();
|
|
158
|
-
_context.next =
|
|
175
|
+
_context.next = 38;
|
|
159
176
|
return regeneratorRuntime.awrap(new Promise(function () {
|
|
160
177
|
var previewOnZaloURL = "https://zalo.me/app/link/zapps/".concat(appId, "/?env=TESTING_LOCAL&clientIp=https://").concat(host, ":").concat(app.config.server.port);
|
|
161
178
|
|
|
@@ -167,17 +184,37 @@ module.exports = function _callee() {
|
|
|
167
184
|
qrcode.generate(previewOnZaloURL, {
|
|
168
185
|
small: true
|
|
169
186
|
}, function (qrcode) {
|
|
170
|
-
|
|
171
|
-
logger.text(
|
|
187
|
+
logger.text(chalk.green("".concat(logSymbols.info, " ").concat(chalk.bold("Zalo Mini App dev server is running at: ".concat(host, ":").concat(app.config.server.port)))));
|
|
188
|
+
logger.text(chalk.green("".concat(logSymbols.info, " ").concat(chalk.bold("Trying reverse socket connection"))));
|
|
189
|
+
|
|
190
|
+
var processAdbReverse = require('child_process').spawn("adb", ['reverse', "tcp:".concat(app.config.server.port), "tcp:".concat(app.config.server.port)]);
|
|
191
|
+
|
|
192
|
+
processAdbReverse.stderr.on('data', function (data) {
|
|
193
|
+
logger.error(data.toString());
|
|
194
|
+
});
|
|
195
|
+
processAdbReverse.on('exit', function (code) {
|
|
196
|
+
if (code !== 0) {
|
|
197
|
+
throw new Error("adb reverse error: ".concat(code));
|
|
198
|
+
} else {
|
|
199
|
+
var qrCode = "".concat(logSymbols.info, " ").concat(chalk.bold("Scan the QR code with Zalo app:\n".concat(qrcode)));
|
|
200
|
+
logger.text(qrCode);
|
|
201
|
+
|
|
202
|
+
var processAdbDevices = require('child_process').spawn("adb", ['devices']);
|
|
203
|
+
|
|
204
|
+
processAdbDevices.stdout.on('data', function (data) {
|
|
205
|
+
logger.text("".concat(chalk.yellow(data.toString())));
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
});
|
|
172
209
|
});
|
|
173
210
|
}
|
|
174
211
|
}));
|
|
175
212
|
|
|
176
|
-
case
|
|
213
|
+
case 38:
|
|
177
214
|
return _context.abrupt("return", _context.sent);
|
|
178
215
|
|
|
179
|
-
case
|
|
180
|
-
_context.prev =
|
|
216
|
+
case 41:
|
|
217
|
+
_context.prev = 41;
|
|
181
218
|
_context.t0 = _context["catch"](12);
|
|
182
219
|
logger.statusError('Error starting project'); // if (err) logger.error(err.stderr || err);
|
|
183
220
|
|
|
@@ -185,10 +222,10 @@ module.exports = function _callee() {
|
|
|
185
222
|
errorExit(_context.t0);
|
|
186
223
|
return _context.abrupt("return");
|
|
187
224
|
|
|
188
|
-
case
|
|
225
|
+
case 47:
|
|
189
226
|
case "end":
|
|
190
227
|
return _context.stop();
|
|
191
228
|
}
|
|
192
229
|
}
|
|
193
|
-
}, null, null, [[12,
|
|
230
|
+
}, null, null, [[12, 41]]);
|
|
194
231
|
};
|
package/start/index.js
CHANGED
|
@@ -121,10 +121,47 @@ module.exports = async (options = {}, logger, { exitOnError = true } = {}) => {
|
|
|
121
121
|
.unref();
|
|
122
122
|
} else if (previewOnZalo) {
|
|
123
123
|
qrcode.generate(previewOnZaloURL, { small: true }, function (qrcode) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
logger.text(
|
|
125
|
+
chalk.green(
|
|
126
|
+
`${logSymbols.info} ${chalk.bold(
|
|
127
|
+
`Zalo Mini App dev server is running at: ${host}:${app.config.server.port}`
|
|
128
|
+
)}`
|
|
129
|
+
)
|
|
130
|
+
);
|
|
131
|
+
logger.text(
|
|
132
|
+
chalk.green(
|
|
133
|
+
`${logSymbols.info} ${chalk.bold(
|
|
134
|
+
`Trying reverse socket connection`
|
|
135
|
+
)}`
|
|
136
|
+
)
|
|
137
|
+
);
|
|
138
|
+
const processAdbReverse = require('child_process').spawn(`adb`, [
|
|
139
|
+
'reverse',
|
|
140
|
+
`tcp:${app.config.server.port}`,
|
|
141
|
+
`tcp:${app.config.server.port}`,
|
|
142
|
+
]);
|
|
143
|
+
|
|
144
|
+
processAdbReverse.stderr.on('data', function (data) {
|
|
145
|
+
logger.error(data.toString());
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
processAdbReverse.on('exit', function (code) {
|
|
149
|
+
if (code !== 0) {
|
|
150
|
+
throw new Error(`adb reverse error: ${code}`);
|
|
151
|
+
} else {
|
|
152
|
+
const qrCode = `${logSymbols.info} ${chalk.bold(
|
|
153
|
+
`Scan the QR code with Zalo app:\n${qrcode}`
|
|
154
|
+
)}`;
|
|
155
|
+
logger.text(qrCode);
|
|
156
|
+
const processAdbDevices = require('child_process').spawn(`adb`, [
|
|
157
|
+
'devices',
|
|
158
|
+
]);
|
|
159
|
+
|
|
160
|
+
processAdbDevices.stdout.on('data', function (data) {
|
|
161
|
+
logger.text(`${chalk.yellow(data.toString())}`);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
});
|
|
128
165
|
});
|
|
129
166
|
}
|
|
130
167
|
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|