create-ts-express-app 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +36 -14
- package/package.json +1 -1
package/bin/cli.js
CHANGED
@@ -1,41 +1,63 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
|
1
3
|
const fs = require('fs-extra');
|
2
4
|
const path = require('path');
|
3
|
-
const chalk = require('chalk');
|
4
5
|
|
6
|
+
// Get project name from command line
|
5
7
|
const projectName = process.argv[2] || 'ts-express-app';
|
6
8
|
|
7
|
-
|
9
|
+
// Target directory (where user ran the npx command)
|
8
10
|
const targetDir = path.join(process.cwd(), projectName);
|
9
11
|
|
12
|
+
// Source template directory (relative to this script)
|
10
13
|
const templateDir = path.join(__dirname, '..', 'templates');
|
11
14
|
|
15
|
+
console.log('Debug info:');
|
16
|
+
console.log(`Script location: ${__dirname}`);
|
17
|
+
console.log(`Template directory: ${templateDir}`);
|
18
|
+
console.log(`Target directory: ${targetDir}`);
|
19
|
+
|
12
20
|
async function createProject() {
|
13
|
-
console.log(
|
14
|
-
|
21
|
+
console.log(`Creating a new TypeScript Express project in ${targetDir}`);
|
15
22
|
|
23
|
+
// Check if directory exists
|
16
24
|
if (fs.existsSync(targetDir)) {
|
17
|
-
console.error(
|
25
|
+
console.error(`Error: Directory ${projectName} already exists.`);
|
18
26
|
process.exit(1);
|
19
27
|
}
|
20
28
|
|
21
|
-
|
29
|
+
// Create the target directory
|
30
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
31
|
+
|
32
|
+
// Check if template directory exists
|
33
|
+
if (!fs.existsSync(templateDir)) {
|
34
|
+
console.error(`Error: Template directory not found at ${templateDir}`);
|
35
|
+
console.log('Available files in script directory:');
|
36
|
+
console.log(fs.readdirSync(path.join(__dirname, '..')));
|
37
|
+
process.exit(1);
|
38
|
+
}
|
39
|
+
|
40
|
+
// Copy template files
|
22
41
|
try {
|
23
42
|
await fs.copy(templateDir, targetDir);
|
24
|
-
console.log(
|
43
|
+
console.log('Template files copied successfully.');
|
25
44
|
|
26
|
-
|
45
|
+
// Update package.json with project name
|
27
46
|
const packageJsonPath = path.join(targetDir, 'package.json');
|
28
|
-
|
29
|
-
|
30
|
-
|
47
|
+
if (fs.existsSync(packageJsonPath)) {
|
48
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
49
|
+
packageJson.name = projectName;
|
50
|
+
await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
|
51
|
+
}
|
31
52
|
|
32
|
-
console.log(
|
33
|
-
console.log(
|
53
|
+
console.log('Project created successfully!');
|
54
|
+
console.log('\nNext steps:');
|
34
55
|
console.log(` cd ${projectName}`);
|
35
56
|
console.log(' npm install');
|
36
57
|
console.log(' npm run dev');
|
37
58
|
} catch (err) {
|
38
|
-
console.error(
|
59
|
+
console.error(`Error creating project: ${err.message}`);
|
60
|
+
console.error(err.stack);
|
39
61
|
process.exit(1);
|
40
62
|
}
|
41
63
|
}
|