@benjos/create-boilerplate 1.0.1 β†’ 1.0.3

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/README.md CHANGED
@@ -1,32 +1,27 @@
1
- # @benjos/boilerplate
1
+ # πŸ“¦ @benjos/create-boilerplate
2
2
 
3
- CLI pour scaffolder des projets Three.js avec support Vanilla/React/Vue.
3
+ CLI to scaffold Three.js projects.
4
4
 
5
- ## Utilisation
5
+ ## πŸš€ Usage
6
6
 
7
7
  ```bash
8
- npm create @benjos/boilerplate
9
- # ou
10
- npx @benjos/boilerplate
8
+ npm create @benjos/boilerplate@latest [project-name]
11
9
  ```
12
10
 
13
- Le CLI vous demandera :
14
- 1. **Nom du projet** (exemple: `my-threejs-app` ou `.` pour le dossier actuel)
15
- 2. **Framework** : Vanilla (React et Vue Γ  venir)
16
-
17
- ## DΓ©veloppement local
11
+ ## πŸ”§ Local Development
18
12
 
19
13
  ```bash
20
- cd packages/cli
21
- npm install
22
- npm run build
23
- npm link
24
-
25
- # Tester
26
- cd /tmp
27
- create-boilerplate
14
+ git clone https://github.com/LeBenjos/boilerplate.git
15
+ cd boilerplate/packages/cli
16
+ npm install && npm run build && npm link
28
17
  ```
29
18
 
30
- ## Publication
19
+ Test: `create-boilerplate`
20
+
21
+ ## πŸ“ Publishing
22
+
23
+ See [../../docs/PUBLISHING.md](../../docs/PUBLISHING.md)
24
+
25
+ ## πŸ“„ License
31
26
 
32
- Voir [docs/PUBLISHING.md](../../docs/PUBLISHING.md)
27
+ MIT
package/dist/index.js CHANGED
@@ -1,20 +1,21 @@
1
1
  #!/usr/bin/env node
2
- import { program } from 'commander';
3
- import inquirer from 'inquirer';
4
2
  import chalk from 'chalk';
3
+ import { program } from 'commander';
5
4
  import fs from 'fs-extra';
5
+ import inquirer from 'inquirer';
6
6
  import path from 'path';
7
7
  import { fileURLToPath } from 'url';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = path.dirname(__filename);
10
- async function createProject() {
10
+ async function createProject(projectNameArg) {
11
11
  console.log(chalk.cyan.bold('\nπŸš€ Welcome to @benjos/boilerplate!\n'));
12
12
  const answers = await inquirer.prompt([
13
13
  {
14
14
  type: 'input',
15
15
  name: 'projectName',
16
16
  message: 'Project name:',
17
- default: 'my-threejs-app',
17
+ default: projectNameArg || 'my-threejs-app',
18
+ when: !projectNameArg,
18
19
  validate: (input) => {
19
20
  if (input === '.')
20
21
  return true;
@@ -36,13 +37,14 @@ async function createProject() {
36
37
  },
37
38
  ]);
38
39
  // Handle current directory case
39
- const isCurrentDir = answers.projectName === '.';
40
+ const projectName = projectNameArg || answers.projectName || '.';
41
+ const isCurrentDir = projectName === '.';
40
42
  const targetDir = isCurrentDir
41
43
  ? process.cwd()
42
- : path.join(process.cwd(), answers.projectName);
44
+ : path.join(process.cwd(), projectName);
43
45
  // Check if directory already exists (only for new directories)
44
46
  if (!isCurrentDir && (await fs.pathExists(targetDir))) {
45
- console.log(chalk.red(`\n❌ Directory "${answers.projectName}" already exists!`));
47
+ console.log(chalk.red(`\n❌ Directory "${projectName}" already exists!`));
46
48
  process.exit(1);
47
49
  }
48
50
  // Check if current directory is empty (only for current directory)
@@ -53,9 +55,7 @@ async function createProject() {
53
55
  process.exit(1);
54
56
  }
55
57
  }
56
- const projectName = isCurrentDir
57
- ? path.basename(targetDir)
58
- : answers.projectName;
58
+ const finalProjectName = isCurrentDir ? path.basename(targetDir) : projectName;
59
59
  console.log(chalk.blue(`\nπŸ“¦ Creating project in ${targetDir}...\n`));
60
60
  // Copy template
61
61
  const templateDir = path.join(__dirname, '..', `template-${answers.framework}`);
@@ -63,12 +63,12 @@ async function createProject() {
63
63
  // Update package.json with project name
64
64
  const packageJsonPath = path.join(targetDir, 'package.json');
65
65
  const packageJson = await fs.readJson(packageJsonPath);
66
- packageJson.name = projectName;
66
+ packageJson.name = finalProjectName;
67
67
  await fs.writeJson(packageJsonPath, packageJson, { spaces: 4 });
68
68
  console.log(chalk.green('βœ… Project created successfully!\n'));
69
69
  console.log(chalk.cyan('Next steps:\n'));
70
70
  if (!isCurrentDir) {
71
- console.log(chalk.white(` cd ${answers.projectName}`));
71
+ console.log(chalk.white(` cd ${projectName}`));
72
72
  }
73
73
  console.log(chalk.white(' npm install'));
74
74
  console.log(chalk.white(' npm run dev\n'));
@@ -76,7 +76,8 @@ async function createProject() {
76
76
  program
77
77
  .name('create-boilerplate')
78
78
  .description('Create a new Three.js project with Vanilla/React/Vue')
79
- .version('1.0.0')
80
- .action(createProject);
79
+ .version('1.0.1')
80
+ .argument('[project-name]', 'Project name (use "." for current directory)')
81
+ .action((projectName) => createProject(projectName));
81
82
  program.parse();
82
83
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAO1C,KAAK,UAAU,aAAa;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAA;IAEtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAiB;QAClD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxB,IAAI,KAAK,KAAK,GAAG;oBAAE,OAAO,IAAI,CAAA;gBAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,uGAAuG,CAAA;gBAClH,CAAC;gBACD,OAAO,IAAI,CAAA;YACf,CAAC;SACJ;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC7D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/D,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC9D;SACJ;KACJ,CAAC,CAAA;IAEF,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,KAAK,GAAG,CAAA;IAChD,MAAM,SAAS,GAAG,YAAY;QAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAEnD,+DAA+D;IAC/D,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,WAAW,mBAAmB,CAAC,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,mEAAmE;IACnE,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;IAEzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,SAAS,OAAO,CAAC,CAAC,CAAA;IAErE,gBAAgB;IAChB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/E,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAErC,wCAAwC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IACtD,WAAW,CAAC,IAAI,GAAG,WAAW,CAAA;IAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAE/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED,OAAO;KACF,IAAI,CAAC,oBAAoB,CAAC;KAC1B,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,aAAa,CAAC,CAAA;AAE1B,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@benjos/create-boilerplate",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "CLI to scaffold Three.js projects with Vanilla/React/Vue support",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,30 @@
1
+ # πŸ“¦ Publishing Guide
2
+
3
+ ## First Publish
4
+
5
+ ```bash
6
+ npm login
7
+ cd packages/cli
8
+ npm run build
9
+ npm publish --access public
10
+ ```
11
+
12
+ ## Updates
13
+
14
+ ```bash
15
+ cd packages/cli
16
+ npm version patch # or minor/major
17
+ npm publish --access public
18
+ ```
19
+
20
+ ## Version Types
21
+
22
+ - `patch` β†’ 1.0.0 β†’ 1.0.1 (bug fixes)
23
+ - `minor` β†’ 1.0.0 β†’ 1.1.0 (new features)
24
+ - `major` β†’ 1.0.0 β†’ 2.0.0 (breaking changes)
25
+
26
+ ## Test Before Publishing
27
+
28
+ ```bash
29
+ npm pack --dry-run
30
+ ```
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "boilerplate",
3
3
  "private": true,
4
- "version": "1.0.22",
4
+ "version": "1.1.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -1,13 +1,49 @@
1
- # Introduction
1
+ # 🎨 Three.js Boilerplate
2
2
 
3
- Welcome to this boilerplate for **Three.js projects**.
4
- I’m building this boilerplate for myself, but I’m sharing it so others can use and improve it!
5
- This boilerplate will evolve after each project I create with it. I’ll update the version number in the `package.json` file accordingly.
3
+ Custom boilerplate for Three.js projects with CLI scaffolding.
6
4
 
7
- ## Debug Mode
5
+ ## πŸš€ Quick Start
8
6
 
9
- To activate **debug mode**, add `#debug` to your **URL**, like this: `http://localhost:5173/#debug`
10
- Toggle Debug UI : `ShiftLeft + KeyH`
11
- Switch to debug camera: `ShiftLeft + KeyC`
12
- In debug camera `Ctrl + Click` on an object **to center the camera** on it.
13
- Toggle wireframe : `ShiftLeft + KeyW`
7
+ ```bash
8
+ npm create @benjos/boilerplate@latest
9
+ ```
10
+
11
+ ## ✨ Features
12
+
13
+ - Three.js + Vite + TypeScript
14
+ - GLSL shaders support
15
+ - Debug mode with lil-gui
16
+ - Manager-based architecture
17
+ - ESLint + Prettier
18
+
19
+ ## πŸ“¦ Usage
20
+
21
+ ```bash
22
+ # Interactive
23
+ npm create @benjos/boilerplate@latest
24
+
25
+ # With name
26
+ npm create @benjos/boilerplate@latest my-project
27
+
28
+ # Current directory
29
+ npm create @benjos/boilerplate@latest .
30
+ ```
31
+
32
+ ## πŸ› Debug Mode
33
+
34
+ Add `#debug` to URL: `http://localhost:5173/#debug`
35
+
36
+ - `Shift + H` β†’ Toggle UI
37
+ - `Shift + C` β†’ Debug Camera
38
+ - `Shift + W` β†’ Wireframe
39
+ - `Ctrl + Click` β†’ Center on object
40
+
41
+ ## πŸ› οΈ Development
42
+
43
+ CLI development: [packages/cli/README.md](packages/cli/README.md)
44
+
45
+ Publishing: [docs/PUBLISHING.md](docs/PUBLISHING.md)
46
+
47
+ ## πŸ“„ License
48
+
49
+ MIT