🔧 Package management optimization

This commit is contained in:
Tw93
2025-08-14 10:01:35 +08:00
parent eefc02bd10
commit dd3e00fad5
6 changed files with 73 additions and 10 deletions

54
.npmignore Normal file
View File

@@ -0,0 +1,54 @@
# Development files
pnpm-lock.yaml
package-lock.json
yarn.lock
# Development directories
node_modules/
.vscode/
.idea/
# Build artifacts
dist-ssr/
*.local
# Development configs
.env
.env.local
.env.development
.env.test
.env.production
# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
pnpm-debug.log*
# OS files
.DS_Store
Thumbs.db
# Testing
coverage/
.nyc_output/
# Documentation source
docs/
*.md
!README.md
# Development scripts
script/
rollup.config.js
tsconfig.json
.prettierrc*
.eslintrc*
# Tauri development files
src-tauri/target/
src-tauri/.cargo/config.toml
src-tauri/.pake/
src-tauri/gen/
output/

View File

@@ -52,15 +52,19 @@ export default abstract class BaseBuilder {
const projectConf = path.join(rustProjectDir, 'config.toml');
await fsExtra.ensureDir(rustProjectDir);
// For global CLI installation, always use npm
const packageManager = 'npm';
const registryOption = isChina ? ' --registry=https://registry.npmmirror.com' : '';
if (isChina) {
logger.info('✺ Located in China, using npm/rsProxy CN mirror.');
const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml');
await fsExtra.copy(projectCnConf, projectConf);
await shellExec(
`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`,
`cd "${npmDirectory}" && ${packageManager} install${registryOption}`,
);
} else {
await shellExec(`cd "${npmDirectory}" && npm install`);
await shellExec(`cd "${npmDirectory}" && ${packageManager} install`);
}
spinner.succeed(chalk.green('Package installed!'));
if (!tauriTargetPathExists) {
@@ -126,4 +130,5 @@ export default abstract class BaseBuilder {
`${fileName}.${fileType}`,
);
}
}

5
bin/cli.ts vendored
View File

@@ -68,7 +68,10 @@ program
)
.option('--debug', 'Debug build and more output', DEFAULT.debug)
.addOption(
new Option('--proxy-url <url>', 'Proxy URL for all network requests (http://, https://, socks5://)')
new Option(
'--proxy-url <url>',
'Proxy URL for all network requests (http://, https://, socks5://)',
)
.default(DEFAULT_PAKE_OPTIONS.proxyUrl)
.hideHelp(),
)

View File

@@ -20,7 +20,6 @@ function isValidName(name: string, platform: NodeJS.Platform): boolean {
return !!name && reg.test(name);
}
export default async function handleOptions(
options: PakeCliOptions,
url: string,
@@ -57,7 +56,6 @@ export default async function handleOptions(
}
}
const appOptions: PakeAppOptions = {
...options,
name,

7
dist/cli.js vendored
View File

@@ -645,14 +645,17 @@ class BaseBuilder {
const rustProjectDir = path.join(tauriSrcPath, '.cargo');
const projectConf = path.join(rustProjectDir, 'config.toml');
await fsExtra.ensureDir(rustProjectDir);
// For global CLI installation, always use npm
const packageManager = 'npm';
const registryOption = isChina ? ' --registry=https://registry.npmmirror.com' : '';
if (isChina) {
logger.info('✺ Located in China, using npm/rsProxy CN mirror.');
const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml');
await fsExtra.copy(projectCnConf, projectConf);
await shellExec(`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`);
await shellExec(`cd "${npmDirectory}" && ${packageManager} install${registryOption}`);
}
else {
await shellExec(`cd "${npmDirectory}" && npm install`);
await shellExec(`cd "${npmDirectory}" && ${packageManager} install`);
}
spinner.succeed(chalk.green('Package installed!'));
if (!tauriTargetPathExists) {

View File

@@ -74,7 +74,7 @@ pub fn set_window(app: &mut App, config: &PakeConfig, tauri_config: &Config) ->
window_builder = window_builder
.data_directory(_data_dir)
.title(app.package_info().name.clone());
// Set theme to None for automatic system theme detection on Windows
// This allows the window to respond to system theme changes automatically
window_builder = window_builder.theme(None);
@@ -85,8 +85,8 @@ pub fn set_window(app: &mut App, config: &PakeConfig, tauri_config: &Config) ->
window_builder = window_builder
.data_directory(_data_dir)
.title(app.package_info().name.clone());
// Set theme to None for automatic system theme detection on Linux
// Set theme to None for automatic system theme detection on Linux
// This allows the window to respond to system theme changes automatically
window_builder = window_builder.theme(None);
}