UNPKG

1.09 kBJavaScriptView Raw
1const slash = require('slash');
2const execa = require('execa');
3const underPath = require('./underPath');
4
5const cwd = underPath('root');
6
7const {
8 logBefore,
9 successlog,
10 successlogAfter,
11} = require('./log');
12
13const {
14 cyan,
15} = require('./colorStr');
16
17/**
18 * 执行 yarn link 建立链接
19 */
20async function link() {
21 await execa('yarn', ['link'], {
22 cwd,
23 });
24 successlogAfter('link');
25}
26
27/**
28 * 执行 yarn unlink 取消链接
29 */
30async function unlink() {
31 await execa('yarn', ['unlink'], {
32 cwd,
33 });
34 successlog('unlink');
35}
36
37module.exports = {
38 link,
39 unlink,
40
41 /**
42 * 执行 unlink -> link 来重建链接
43 */
44 async relink() {
45 logBefore(cyan('[re-link]:'));
46 await unlink();
47 await link();
48 },
49
50 /**
51 * 执行 yarn global dir
52 */
53 async yarnGlobalDir() {
54 const {
55 stdout,
56 } = await execa('yarn', ['global', 'dir']);
57
58 return slash(stdout);
59 },
60
61 /**
62 * 执行 yarn global bin
63 */
64 async yarnGlobalBin() {
65 const {
66 stdout,
67 } = await execa('yarn', ['global', 'bin']);
68
69 return slash(stdout);
70 },
71};