mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 05:29:26 +08:00
chore: update-deps
This commit is contained in:
parent
285918c1a8
commit
582f0647e3
@ -30,6 +30,7 @@ module.exports = (cli) => {
|
|||||||
require('./test')(cli);
|
require('./test')(cli);
|
||||||
require('./test-coverage')(cli);
|
require('./test-coverage')(cli);
|
||||||
require('./umi')(cli);
|
require('./umi')(cli);
|
||||||
|
require('./update-deps')(cli);
|
||||||
require('./upgrade')(cli);
|
require('./upgrade')(cli);
|
||||||
require('./postinstall')(cli);
|
require('./postinstall')(cli);
|
||||||
require('./pkg')(cli);
|
require('./pkg')(cli);
|
||||||
|
68
packages/core/cli/src/commands/update-deps.js
Normal file
68
packages/core/cli/src/commands/update-deps.js
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/**
|
||||||
|
* This file is part of the NocoBase (R) project.
|
||||||
|
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
||||||
|
* Authors: NocoBase Team.
|
||||||
|
*
|
||||||
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
||||||
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const chalk = require('chalk');
|
||||||
|
const { Command } = require('commander');
|
||||||
|
const { resolve } = require('path');
|
||||||
|
const { run, promptForTs, runAppCommand, hasCorePackages, downloadPro, hasTsNode, checkDBDialect } = require('../util');
|
||||||
|
const { existsSync, rmSync } = require('fs');
|
||||||
|
const { readJSON, writeJSON } = require('fs-extra');
|
||||||
|
const deepmerge = require('deepmerge');
|
||||||
|
|
||||||
|
const rmAppDir = () => {
|
||||||
|
// If ts-node is not installed, do not do the following
|
||||||
|
const appDevDir = resolve(process.cwd(), './storage/.app-dev');
|
||||||
|
if (existsSync(appDevDir)) {
|
||||||
|
rmSync(appDevDir, { recursive: true, force: true });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {Command} cli
|
||||||
|
*/
|
||||||
|
module.exports = (cli) => {
|
||||||
|
cli
|
||||||
|
.command('update-deps')
|
||||||
|
.allowUnknownOption()
|
||||||
|
.action(async () => {
|
||||||
|
if (hasCorePackages() || !hasTsNode()) {
|
||||||
|
await downloadPro();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const pkg = require('../../package.json');
|
||||||
|
let distTag = 'latest';
|
||||||
|
if (pkg.version.includes('alpha')) {
|
||||||
|
distTag = 'alpha';
|
||||||
|
} else if (pkg.version.includes('beta')) {
|
||||||
|
distTag = 'beta';
|
||||||
|
}
|
||||||
|
const { stdout } = await run('npm', ['info', `@nocobase/cli@${distTag}`, 'version'], {
|
||||||
|
stdio: 'pipe',
|
||||||
|
});
|
||||||
|
if (pkg.version === stdout) {
|
||||||
|
await downloadPro();
|
||||||
|
rmAppDir();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const descPath = resolve(process.cwd(), 'package.json');
|
||||||
|
const descJson = await readJSON(descPath, 'utf8');
|
||||||
|
await run('yarn', ['add', `@nocobase/cli@${distTag}`, '-W']);
|
||||||
|
if (descJson['devDependencies']?.['@nocobase/devtools']) {
|
||||||
|
await run('yarn', ['add', `@nocobase/devtools@${distTag}`, '-W', '-D']);
|
||||||
|
}
|
||||||
|
const sourcePath = resolve(__dirname, '../../templates/create-app-package.json');
|
||||||
|
const sourceJson = await readJSON(sourcePath, 'utf8');
|
||||||
|
const json = deepmerge(descJson, sourceJson);
|
||||||
|
await writeJSON(descPath, json, { spaces: 2, encoding: 'utf8' });
|
||||||
|
await run('yarn', ['install']);
|
||||||
|
await downloadPro();
|
||||||
|
rmAppDir();
|
||||||
|
});
|
||||||
|
};
|
@ -39,52 +39,9 @@ module.exports = (cli) => {
|
|||||||
.action(async (options) => {
|
.action(async (options) => {
|
||||||
checkDBDialect();
|
checkDBDialect();
|
||||||
if (hasTsNode()) promptForTs();
|
if (hasTsNode()) promptForTs();
|
||||||
if (hasCorePackages()) {
|
if (!options.skipCodeUpdate) {
|
||||||
// await run('yarn', ['install']);
|
await run('nocobase', ['update-deps']);
|
||||||
await downloadPro();
|
|
||||||
await runAppCommand('upgrade');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (options.skipCodeUpdate) {
|
|
||||||
await downloadPro();
|
|
||||||
await runAppCommand('upgrade');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// await runAppCommand('upgrade');
|
|
||||||
if (!hasTsNode()) {
|
|
||||||
await downloadPro();
|
|
||||||
await runAppCommand('upgrade');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const rmAppDir = () => {
|
|
||||||
// If ts-node is not installed, do not do the following
|
|
||||||
const appDevDir = resolve(process.cwd(), './storage/.app-dev');
|
|
||||||
if (existsSync(appDevDir)) {
|
|
||||||
rmSync(appDevDir, { recursive: true, force: true });
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const pkg = require('../../package.json');
|
|
||||||
let distTag = 'latest';
|
|
||||||
if (pkg.version.includes('alpha')) {
|
|
||||||
distTag = 'alpha';
|
|
||||||
} else if (pkg.version.includes('beta')) {
|
|
||||||
distTag = 'beta';
|
|
||||||
}
|
|
||||||
// get latest version
|
|
||||||
const { stdout } = await run('npm', ['info', `@nocobase/cli@${distTag}`, 'version'], {
|
|
||||||
stdio: 'pipe',
|
|
||||||
});
|
|
||||||
if (pkg.version === stdout) {
|
|
||||||
await downloadPro();
|
|
||||||
await runAppCommand('upgrade');
|
|
||||||
await rmAppDir();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await run('yarn', ['add', `@nocobase/cli@${distTag}`, `@nocobase/devtools@${distTag}`, '-W']);
|
|
||||||
await updatePackage();
|
|
||||||
await run('yarn', ['install']);
|
|
||||||
await downloadPro();
|
|
||||||
await runAppCommand('upgrade');
|
await runAppCommand('upgrade');
|
||||||
await rmAppDir();
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -21,7 +21,7 @@ cli
|
|||||||
.option('--quickstart', 'quickstart app creation')
|
.option('--quickstart', 'quickstart app creation')
|
||||||
.option('--skip-dev-dependencies')
|
.option('--skip-dev-dependencies')
|
||||||
.option('-a, --all-db-dialect', 'install all database dialect dependencies')
|
.option('-a, --all-db-dialect', 'install all database dialect dependencies')
|
||||||
.option('-d, --db-dialect <dbDialect>', 'database dialect, current support mysql/postgres', 'postgres')
|
.option('-d, --db-dialect [dbDialect]', 'database dialect, current support postgres, mysql, mariadb, kingbase')
|
||||||
.option('-e, --env <env>', 'environment variables write into .env file', concat, [])
|
.option('-e, --env <env>', 'environment variables write into .env file', concat, [])
|
||||||
.description('create a new application')
|
.description('create a new application')
|
||||||
.action(async (name, options) => {
|
.action(async (name, options) => {
|
||||||
|
@ -61,7 +61,7 @@ class AppGenerator extends Generator {
|
|||||||
|
|
||||||
checkDialect() {
|
checkDialect() {
|
||||||
const dialect = this.args.dbDialect;
|
const dialect = this.args.dbDialect;
|
||||||
const supportDialects = ['mysql', 'mariadb', 'postgres'];
|
const supportDialects = ['mysql', 'mariadb', 'postgres', 'kingbase'];
|
||||||
if (!supportDialects.includes(dialect)) {
|
if (!supportDialects.includes(dialect)) {
|
||||||
console.log(
|
console.log(
|
||||||
`dialect ${chalk.red(dialect)} is not supported, currently supported dialects are ${chalk.green(
|
`dialect ${chalk.red(dialect)} is not supported, currently supported dialects are ${chalk.green(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user