40 lines
722 B
JavaScript
40 lines
722 B
JavaScript
|
const execa = require('execa');
|
||
|
|
||
|
function hasYarn() {
|
||
|
return (process.env.npm_config_user_agent || '').indexOf('yarn') === 0;
|
||
|
}
|
||
|
|
||
|
function runYarn(path, args) {
|
||
|
if (hasYarn()) {
|
||
|
return execa('yarn', args, {
|
||
|
cwd: path,
|
||
|
stdin: 'ignore',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return execa('npm', args, { cwd: path, stdin: 'ignore' });
|
||
|
}
|
||
|
|
||
|
function runInstall(path) {
|
||
|
return runYarn(path, ['install']);
|
||
|
}
|
||
|
|
||
|
function runStart(path) {
|
||
|
return runYarn(path, ['run', 'start']);
|
||
|
}
|
||
|
|
||
|
function runInit(path, args = []) {
|
||
|
if (!hasYarn()) {
|
||
|
args.unshift('--');
|
||
|
}
|
||
|
console.log('run init', args);
|
||
|
return runYarn(path, ['run', 'nocobase', 'init', ...args]);
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
runInit,
|
||
|
runStart,
|
||
|
runInstall,
|
||
|
hasYarn,
|
||
|
};
|