fix: 修复CLI模板路径解析bug
This commit is contained in:
parent
af4de6b86a
commit
e053be2c3e
|
|
@ -1,17 +1,28 @@
|
||||||
import fs from 'fs-extra';
|
import fs from 'fs-extra';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { fileURLToPath } from 'url';
|
|
||||||
import type { TemplateVariables } from '../types.js';
|
import type { TemplateVariables } from '../types.js';
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
|
||||||
const __dirname = path.dirname(__filename);
|
|
||||||
|
|
||||||
export function getTemplatesDir(): string {
|
export function getTemplatesDir(): string {
|
||||||
return path.resolve(__dirname, '../../templates');
|
const cliRoot = findCliRoot();
|
||||||
|
return path.join(cliRoot, 'templates');
|
||||||
|
}
|
||||||
|
|
||||||
|
function findCliRoot(): string {
|
||||||
|
let current = path.resolve(process.argv[1] || __dirname);
|
||||||
|
while (current !== path.dirname(current)) {
|
||||||
|
if (fs.existsSync(path.join(current, 'package.json'))) {
|
||||||
|
const pkg = fs.readJsonSync(path.join(current, 'package.json'));
|
||||||
|
if (pkg.name === '@fischerx/cli') {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
current = path.dirname(current);
|
||||||
|
}
|
||||||
|
return path.resolve(__dirname, '..');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPackageRoot(): string {
|
export function getPackageRoot(): string {
|
||||||
return path.resolve(__dirname, '../..');
|
return findCliRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getProjectRoot(): string {
|
export function getProjectRoot(): string {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue