@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 +16 -21
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/template-vanilla/docs/PUBLISHING.md +30 -0
- package/template-vanilla/package.json +1 -1
- package/template-vanilla/readme.md +46 -10
package/README.md
CHANGED
|
@@ -1,32 +1,27 @@
|
|
|
1
|
-
# @benjos/boilerplate
|
|
1
|
+
# π¦ @benjos/create-boilerplate
|
|
2
2
|
|
|
3
|
-
CLI
|
|
3
|
+
CLI to scaffold Three.js projects.
|
|
4
4
|
|
|
5
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
19
|
+
Test: `create-boilerplate`
|
|
20
|
+
|
|
21
|
+
## π Publishing
|
|
22
|
+
|
|
23
|
+
See [../../docs/PUBLISHING.md](../../docs/PUBLISHING.md)
|
|
24
|
+
|
|
25
|
+
## π License
|
|
31
26
|
|
|
32
|
-
|
|
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
|
|
40
|
+
const projectName = projectNameArg || answers.projectName || '.';
|
|
41
|
+
const isCurrentDir = projectName === '.';
|
|
40
42
|
const targetDir = isCurrentDir
|
|
41
43
|
? process.cwd()
|
|
42
|
-
: path.join(process.cwd(),
|
|
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 "${
|
|
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
|
|
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 =
|
|
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 ${
|
|
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.
|
|
80
|
-
.
|
|
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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,13 +1,49 @@
|
|
|
1
|
-
#
|
|
1
|
+
# π¨ Three.js Boilerplate
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
##
|
|
5
|
+
## π Quick Start
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|