create-ts-express-app 1.3.0 → 1.3.1
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 +41 -43
- package/package.json +11 -20
package/bin/cli.js
CHANGED
@@ -1,50 +1,48 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
const fs = require('fs-extra');
|
4
|
-
const path = require('path');
|
1
|
+
const fs = require("fs-extra")
|
2
|
+
const path = require("path")
|
5
3
|
|
6
4
|
// Get project name from command line
|
7
|
-
const projectName = process.argv[2] ||
|
5
|
+
const projectName = process.argv[2] || "ts-express-app"
|
8
6
|
|
9
7
|
// Target directory (where user ran the npx command)
|
10
|
-
const targetDir = path.join(process.cwd(), projectName)
|
8
|
+
const targetDir = path.join(process.cwd(), projectName)
|
11
9
|
|
12
10
|
// Source template directory (relative to this script)
|
13
|
-
const templateDir = path.join(__dirname,
|
11
|
+
const templateDir = path.join(__dirname, "..", "template")
|
14
12
|
|
15
|
-
console.log(
|
16
|
-
console.log(`Script location: ${__dirname}`)
|
17
|
-
console.log(`Template directory: ${templateDir}`)
|
18
|
-
console.log(`Target directory: ${targetDir}`)
|
13
|
+
console.log("Debug info:")
|
14
|
+
console.log(`Script location: ${__dirname}`)
|
15
|
+
console.log(`Template directory: ${templateDir}`)
|
16
|
+
console.log(`Target directory: ${targetDir}`)
|
19
17
|
|
20
18
|
async function createProject() {
|
21
|
-
console.log(`Creating a new TypeScript Express project in ${targetDir}`)
|
22
|
-
|
19
|
+
console.log(`Creating a new TypeScript Express project in ${targetDir}`)
|
20
|
+
|
23
21
|
// Check if directory exists
|
24
22
|
if (fs.existsSync(targetDir)) {
|
25
|
-
console.error(`Error: Directory ${projectName} already exists.`)
|
26
|
-
process.exit(1)
|
23
|
+
console.error(`Error: Directory ${projectName} already exists.`)
|
24
|
+
process.exit(1)
|
27
25
|
}
|
28
|
-
|
26
|
+
|
29
27
|
// Create the target directory
|
30
|
-
fs.mkdirSync(targetDir, { recursive: true })
|
31
|
-
|
28
|
+
fs.mkdirSync(targetDir, { recursive: true })
|
29
|
+
|
32
30
|
// Check if template directory exists
|
33
31
|
if (!fs.existsSync(templateDir)) {
|
34
|
-
console.error(`Error: Template directory not found at ${templateDir}`)
|
35
|
-
console.log(
|
36
|
-
console.log(fs.readdirSync(path.join(__dirname,
|
37
|
-
process.exit(1)
|
32
|
+
console.error(`Error: Template directory not found at ${templateDir}`)
|
33
|
+
console.log("Available files in script directory:")
|
34
|
+
console.log(fs.readdirSync(path.join(__dirname, "..")))
|
35
|
+
process.exit(1)
|
38
36
|
}
|
39
|
-
|
37
|
+
|
40
38
|
// Copy template files
|
41
39
|
try {
|
42
|
-
await fs.copy(templateDir, targetDir)
|
43
|
-
console.log(
|
40
|
+
await fs.copy(templateDir, targetDir)
|
41
|
+
console.log("Template files copied successfully.")
|
44
42
|
// Add this after copying the template files:
|
45
|
-
await fs.writeFile(
|
46
|
-
|
47
|
-
|
43
|
+
await fs.writeFile(
|
44
|
+
path.join(targetDir, ".gitignore"),
|
45
|
+
`# Generated .gitignore file
|
48
46
|
node_modules/
|
49
47
|
dist/
|
50
48
|
.env
|
@@ -52,24 +50,24 @@ await fs.writeFile(
|
|
52
50
|
npm-debug.log
|
53
51
|
yarn-error.log
|
54
52
|
`
|
55
|
-
|
56
|
-
const packageJsonPath = path.join(targetDir,
|
53
|
+
)
|
54
|
+
const packageJsonPath = path.join(targetDir, "package.json")
|
57
55
|
if (fs.existsSync(packageJsonPath)) {
|
58
|
-
const packageJson = await fs.readJson(packageJsonPath)
|
59
|
-
packageJson.name = projectName
|
60
|
-
await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 })
|
56
|
+
const packageJson = await fs.readJson(packageJsonPath)
|
57
|
+
packageJson.name = projectName
|
58
|
+
await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 })
|
61
59
|
}
|
62
|
-
|
63
|
-
console.log(
|
64
|
-
console.log(
|
65
|
-
console.log(` cd ${projectName}`)
|
66
|
-
console.log(
|
67
|
-
console.log(
|
60
|
+
|
61
|
+
console.log("Project created successfully!")
|
62
|
+
console.log("\nNext steps:")
|
63
|
+
console.log(` cd ${projectName}`)
|
64
|
+
console.log(" npm install")
|
65
|
+
console.log(" npm run dev")
|
68
66
|
} catch (err) {
|
69
|
-
console.error(`Error creating project: ${err.message}`)
|
70
|
-
console.error(err.stack)
|
71
|
-
process.exit(1)
|
67
|
+
console.error(`Error creating project: ${err.message}`)
|
68
|
+
console.error(err.stack)
|
69
|
+
process.exit(1)
|
72
70
|
}
|
73
71
|
}
|
74
72
|
|
75
|
-
createProject()
|
73
|
+
createProject()
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "create-ts-express-app",
|
3
|
-
"version": "1.3.
|
3
|
+
"version": "1.3.1",
|
4
4
|
"main": "index.js",
|
5
5
|
"bin": {
|
6
6
|
"create-ts-express-app": "bin/cli.js"
|
@@ -11,30 +11,21 @@
|
|
11
11
|
"dev": "nodemon --exec ts-node src/index.ts",
|
12
12
|
"dev:watch": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts"
|
13
13
|
},
|
14
|
-
"keywords": [
|
14
|
+
"keywords": [
|
15
|
+
"typescript",
|
16
|
+
"express",
|
17
|
+
"boilerplate",
|
18
|
+
"create-app",
|
19
|
+
"starter",
|
20
|
+
"scaffold",
|
21
|
+
"npx",
|
22
|
+
"cli"
|
23
|
+
],
|
15
24
|
"author": "Harsh Pal",
|
16
25
|
"license": "MIT",
|
17
26
|
"description": "A simple backend starter for ts",
|
18
|
-
"devDependencies": {
|
19
|
-
"@types/node": "^22.14.1",
|
20
|
-
"@typescript-eslint/eslint-plugin": "^8.30.1",
|
21
|
-
"@typescript-eslint/parser": "^8.30.1",
|
22
|
-
"eslint": "^9.24.0",
|
23
|
-
"eslint-config-prettier": "^10.1.2",
|
24
|
-
"eslint-plugin-prettier": "^5.2.6",
|
25
|
-
"nodemon": "^3.1.9",
|
26
|
-
"prettier": "^3.5.3",
|
27
|
-
"ts-node": "^10.9.2",
|
28
|
-
"typescript": "^5.8.3"
|
29
|
-
},
|
30
27
|
"dependencies": {
|
31
|
-
"@types/express": "^5.0.1",
|
32
|
-
"dotenv": "^16.5.0",
|
33
|
-
"express": "^5.1.0",
|
34
|
-
"fs": "^0.0.1-security",
|
35
|
-
"ncp": "^2.0.0",
|
36
28
|
"path": "^0.12.7",
|
37
|
-
"chalk": "^4.1.2",
|
38
29
|
"fs-extra": "^10.1.0"
|
39
30
|
},
|
40
31
|
"repository": {
|