@yuw-cli-dev/exec 1.0.37 → 1.0.39
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/lib/index.js +50 -16
- package/package.json +5 -4
package/lib/index.js
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
const path = require(
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const slash = require('slash');
|
|
5
|
+
const cp = require('child_process');
|
|
6
|
+
const Package = require('@yuw-cli-dev/package');
|
|
7
|
+
const log = require('@yuw-cli-dev/log');
|
|
8
|
+
const { normalizePath, exec: spawn } = require('@yuw-cli-dev/utils');
|
|
6
9
|
|
|
7
10
|
const SETTINGS = {
|
|
8
|
-
init:
|
|
11
|
+
init: '@yuw-cli-dev/init',
|
|
9
12
|
};
|
|
10
|
-
const CACHE_DIR =
|
|
13
|
+
const CACHE_DIR = 'dependencies';
|
|
14
|
+
|
|
11
15
|
async function exec() {
|
|
12
16
|
let targetPath = process.env.CLI_TARGET_PATH;
|
|
13
|
-
let storeDir =
|
|
17
|
+
let storeDir = '';
|
|
14
18
|
let pkg;
|
|
15
19
|
const homePath = process.env.CLI_HOME_PATH;
|
|
16
20
|
|
|
17
|
-
log.verbose(
|
|
18
|
-
log.verbose(
|
|
21
|
+
log.verbose('targetPath', targetPath);
|
|
22
|
+
log.verbose('homePath', homePath);
|
|
19
23
|
|
|
20
24
|
const cmdObj = arguments[arguments.length - 1];
|
|
21
25
|
const cmdName = cmdObj.name();
|
|
22
26
|
const packageName = SETTINGS[cmdName];
|
|
23
|
-
const packageVersion =
|
|
27
|
+
const packageVersion = 'latest';
|
|
24
28
|
|
|
25
29
|
if (!targetPath) {
|
|
26
30
|
targetPath = path.resolve(homePath, CACHE_DIR);
|
|
27
|
-
storeDir = path.resolve(targetPath,
|
|
31
|
+
storeDir = path.resolve(targetPath, 'node_modules');
|
|
28
32
|
|
|
29
|
-
log.verbose(
|
|
30
|
-
log.verbose(
|
|
33
|
+
log.verbose('storeDir', storeDir);
|
|
34
|
+
log.verbose('targetPath', targetPath);
|
|
31
35
|
|
|
32
36
|
pkg = new Package({
|
|
33
37
|
targetPath,
|
|
@@ -36,9 +40,9 @@ async function exec() {
|
|
|
36
40
|
packageVersion,
|
|
37
41
|
});
|
|
38
42
|
|
|
39
|
-
if (pkg.exists()) {
|
|
43
|
+
if (await pkg.exists()) {
|
|
40
44
|
// 更新package
|
|
41
|
-
pkg.update();
|
|
45
|
+
await pkg.update();
|
|
42
46
|
} else {
|
|
43
47
|
// 安装package
|
|
44
48
|
await pkg.install();
|
|
@@ -52,7 +56,37 @@ async function exec() {
|
|
|
52
56
|
}
|
|
53
57
|
const rootFile = pkg.getRootFilePath();
|
|
54
58
|
if (rootFile) {
|
|
55
|
-
|
|
59
|
+
try {
|
|
60
|
+
const args = Array.from(arguments);
|
|
61
|
+
const o = Object.create(null);
|
|
62
|
+
const cmdObj = args[args.length - 1];
|
|
63
|
+
Object.keys(cmdObj).forEach(key => {
|
|
64
|
+
if (
|
|
65
|
+
cmdObj.hasOwnProperty(key) &&
|
|
66
|
+
!key.startsWith('_') &&
|
|
67
|
+
key !== 'parent'
|
|
68
|
+
) {
|
|
69
|
+
o[key] = cmdObj[key];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
args[args.length - 1] = o;
|
|
73
|
+
const code = `require('${normalizePath(rootFile)}').call(null, ${JSON.stringify(args)})`;
|
|
74
|
+
const child = spawn('node', ['-e', code], {
|
|
75
|
+
cwd: process.cwd(),
|
|
76
|
+
stdio: 'inherit',
|
|
77
|
+
});
|
|
78
|
+
child.on('error', e => {
|
|
79
|
+
log.error(e.message);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
});
|
|
82
|
+
child.on('exit', e => {
|
|
83
|
+
log.verbose('命令执行成功:' + e);
|
|
84
|
+
process.exit(e);
|
|
85
|
+
});
|
|
86
|
+
} catch (error) {
|
|
87
|
+
log.error(error.message);
|
|
88
|
+
}
|
|
56
89
|
}
|
|
57
90
|
}
|
|
91
|
+
|
|
58
92
|
module.exports = exec;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuw-cli-dev/exec",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"description": "yuw-cli-dev execute package",
|
|
5
5
|
"author": "yuwei <yuwei@huya.com>",
|
|
6
6
|
"homepage": "https://github.com/yousanjin/yuw-cli#readme",
|
|
@@ -27,8 +27,9 @@
|
|
|
27
27
|
"url": "https://github.com/yousanjin/yuw-cli/issues"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@yuw-cli-dev/log": "^1.0.
|
|
31
|
-
"@yuw-cli-dev/package": "file:../../models/package"
|
|
30
|
+
"@yuw-cli-dev/log": "^1.0.39",
|
|
31
|
+
"@yuw-cli-dev/package": "file:../../models/package",
|
|
32
|
+
"@yuw-cli-dev/utils": "^1.0.39"
|
|
32
33
|
},
|
|
33
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "7bcace542ccccc47f518b0537cbb0cce93229adf"
|
|
34
35
|
}
|