feat(config): switch compile target configuration from npmextra to smartconfig

This commit is contained in:
2026-03-24 15:06:48 +00:00
parent cb60971f27
commit c5bbc1ca26
7 changed files with 39 additions and 13 deletions

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@git.zone/tsdeno',
version: '1.2.0',
version: '1.3.0',
description: 'A helper tool for deno compile that strips package.json to prevent devDependency bloat in compiled binaries.'
}

View File

@@ -3,7 +3,7 @@ import * as path from 'path';
export { path };
// @push.rocks scope
import * as npmextra from '@push.rocks/npmextra';
import * as npmextra from '@push.rocks/smartconfig';
import * as smartcli from '@push.rocks/smartcli';
import { SmartFs, SmartFsProviderNode } from '@push.rocks/smartfs';
import * as smartshell from '@push.rocks/smartshell';

View File

@@ -59,18 +59,18 @@ export class TsDeno {
* The package.json hide/restore wraps the entire loop.
*/
public async compileFromConfig(): Promise<void> {
const npmextraInstance = new plugins.npmextra.Npmextra(this.cwd);
const npmextraInstance = new plugins.npmextra.Smartconfig(this.cwd);
const config = npmextraInstance.dataFor<ITsdenoConfig>('@git.zone/tsdeno', {
compileTargets: [],
});
if (config.compileTargets.length === 0) {
console.error('tsdeno: no compileTargets found in npmextra.json under "@git.zone/tsdeno"');
console.error('tsdeno: either pass args directly or add config to npmextra.json');
console.error('tsdeno: no compileTargets found in smartconfig.json under "@git.zone/tsdeno"');
console.error('tsdeno: either pass args directly or add config to smartconfig.json');
process.exit(1);
}
console.log(`tsdeno: found ${config.compileTargets.length} compile target(s) in npmextra.json`);
console.log(`tsdeno: found ${config.compileTargets.length} compile target(s) in smartconfig.json`);
const packageJsonPath = plugins.path.join(this.cwd, 'package.json');
const backupPath = plugins.path.join(this.cwd, 'package.json.bak');

View File

@@ -10,10 +10,10 @@ tsdenoCli.standardCommand().subscribe(async (argvArg) => {
console.log(`@git.zone/tsdeno v${commitinfo.version}`);
console.log('');
console.log('Usage:');
console.log(' tsdeno compile Compile all targets from npmextra.json');
console.log(' tsdeno compile Compile all targets from smartconfig.json');
console.log(' tsdeno compile [deno compile args...] Compile with explicit args (passthrough)');
console.log('');
console.log('When no args are given, tsdeno reads compileTargets from npmextra.json.');
console.log('When no args are given, tsdeno reads compileTargets from smartconfig.json.');
console.log('The compile command temporarily removes package.json before running');
console.log('deno compile, preventing devDependencies from bloating the binary.');
console.log('--node-modules-dir=none is added automatically.');
@@ -24,7 +24,7 @@ tsdenoCli.addCommand('compile').subscribe(async (argvArg) => {
const rawArgs = process.argv.slice(3);
if (rawArgs.length === 0) {
// No args — read targets from npmextra.json
// No args — read targets from smartconfig.json
await tsDeno.compileFromConfig();
} else {
// Args provided — passthrough to deno compile