First-time installation prompt

This commit is contained in:
Tw93
2023-06-24 21:24:31 +08:00
parent 974a1f45de
commit 088e14ca29

View File

@@ -22,7 +22,11 @@ export default abstract class BaseBuilder {
} }
async prepare() { async prepare() {
if (!IS_MAC) { const tauriSrcPath = path.join(npmDirectory, 'src-tauri');
const tauriTargetPath = path.join(tauriSrcPath, 'target');
const tauriTargetPathExists = await fsExtra.pathExists(tauriTargetPath);
if (!IS_MAC && !tauriTargetPathExists) {
logger.info('✺ The first use requires installing system dependencies.'); logger.info('✺ The first use requires installing system dependencies.');
logger.info('✺ See more in https://tauri.app/v1/guides/getting-started/prerequisites.'); logger.info('✺ See more in https://tauri.app/v1/guides/getting-started/prerequisites.');
} }
@@ -44,20 +48,25 @@ export default abstract class BaseBuilder {
const isChina = await isChinaDomain('www.npmjs.com'); const isChina = await isChinaDomain('www.npmjs.com');
const spinner = getSpinner('Installing package...'); const spinner = getSpinner('Installing package...');
const rustProjectDir = path.join(tauriSrcPath, '.cargo');
const projectConf = path.join(rustProjectDir, 'config');
await fsExtra.ensureDir(rustProjectDir);
if (isChina) { if (isChina) {
logger.info('✺ Located in China, using npm/rsProxy CN mirror.'); logger.info('✺ Located in China, using npm/rsProxy CN mirror.');
const rustProjectDir = path.join(npmDirectory, 'src-tauri', '.cargo'); const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml');
await fsExtra.ensureDir(rustProjectDir);
const projectCnConf = path.join(npmDirectory, 'src-tauri', 'rust_proxy.toml');
const projectConf = path.join(rustProjectDir, 'config');
await fsExtra.copy(projectCnConf, projectConf); await fsExtra.copy(projectCnConf, projectConf);
await shellExec(`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`); await shellExec(`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`);
} else { } else {
await shellExec(`cd "${npmDirectory}" && npm install`); await shellExec(`cd "${npmDirectory}" && npm install`);
} }
spinner.succeed(chalk.green('Package installed!')); spinner.succeed(chalk.green('Package installed!'));
if (!tauriTargetPathExists) {
logger.warn('✼ The first packaging may be slow, please be patient and wait, it will be faster afterwards.');
}
} }
async build(url: string) { async build(url: string) {
await this.buildAndCopy(url, this.options.targets); await this.buildAndCopy(url, this.options.targets);
} }