create-medan-app 0.1.1 → 0.1.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/dist/index.js +4 -2
- package/dist/templates.js +33 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
|
-
import { GITIGNORE, mainMedan, packageJson, readme } from "./templates.js";
|
|
4
|
+
import { DEV_MJS, GITIGNORE, mainMedan, packageJson, readme } from "./templates.js";
|
|
5
5
|
function isValidPackageName(name) {
|
|
6
6
|
return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(name);
|
|
7
7
|
}
|
|
@@ -23,13 +23,15 @@ function main() {
|
|
|
23
23
|
mkdirSync(targetDir, { recursive: true });
|
|
24
24
|
writeFileSync(resolve(targetDir, "package.json"), packageJson(rawName));
|
|
25
25
|
writeFileSync(resolve(targetDir, "main.medan"), mainMedan(rawName));
|
|
26
|
+
writeFileSync(resolve(targetDir, "dev.mjs"), DEV_MJS);
|
|
26
27
|
writeFileSync(resolve(targetDir, "README.md"), readme(rawName));
|
|
27
28
|
writeFileSync(resolve(targetDir, ".gitignore"), GITIGNORE);
|
|
28
29
|
console.log(`mantap kali! project '${rawName}' udah jadi.\n`);
|
|
29
30
|
console.log("langkah selanjutnya:\n");
|
|
30
31
|
console.log(` cd ${rawName}`);
|
|
31
32
|
console.log(" npm install");
|
|
32
|
-
console.log(" npm
|
|
33
|
+
console.log(" npm run dev # auto-regenerate tiap main.medan disave");
|
|
34
|
+
console.log(" # atau: npm start # generate sekali doang");
|
|
33
35
|
console.log(" # terus buka landing.html di browser");
|
|
34
36
|
}
|
|
35
37
|
main();
|
package/dist/templates.js
CHANGED
|
@@ -4,14 +4,39 @@ export function packageJson(name) {
|
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
|
-
"start": "medan main.medan"
|
|
7
|
+
"start": "medan main.medan",
|
|
8
|
+
"dev": "node dev.mjs"
|
|
8
9
|
},
|
|
9
10
|
"dependencies": {
|
|
10
|
-
"medan-language": "^0.1.
|
|
11
|
+
"medan-language": "^0.1.3"
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
`;
|
|
14
15
|
}
|
|
16
|
+
export const DEV_MJS = `// dev.mjs
|
|
17
|
+
// "npm run dev" jalanin file ini: generate landing.html sekali, terus
|
|
18
|
+
// nungguin main.medan berubah dan regenerate otomatis tiap disave.
|
|
19
|
+
|
|
20
|
+
import { spawnSync } from "node:child_process";
|
|
21
|
+
import { watch } from "node:fs";
|
|
22
|
+
|
|
23
|
+
function build() {
|
|
24
|
+
console.log("\\n[medan] generate landing.html ...");
|
|
25
|
+
const result = spawnSync("medan", ["main.medan"], { stdio: "inherit" });
|
|
26
|
+
if (result.status !== 0) {
|
|
27
|
+
console.error("[medan] ada error di atas, benerin dulu terus save lagi.");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
build();
|
|
32
|
+
console.log("[medan] mantau main.medan, ctrl+c buat berhenti...");
|
|
33
|
+
|
|
34
|
+
let timer;
|
|
35
|
+
watch("main.medan", () => {
|
|
36
|
+
clearTimeout(timer);
|
|
37
|
+
timer = setTimeout(build, 100);
|
|
38
|
+
});
|
|
39
|
+
`;
|
|
15
40
|
export function mainMedan(name) {
|
|
16
41
|
return `// main.medan
|
|
17
42
|
// Ini titik masuk project "${name}" kamu.
|
|
@@ -152,12 +177,14 @@ Project Medan-lang, di-scaffold pakai \`create-medan-app\`.
|
|
|
152
177
|
|
|
153
178
|
\`\`\`bash
|
|
154
179
|
npm install
|
|
155
|
-
npm
|
|
180
|
+
npm run dev
|
|
156
181
|
\`\`\`
|
|
157
182
|
|
|
158
|
-
\`npm
|
|
159
|
-
|
|
160
|
-
|
|
183
|
+
\`npm run dev\` generate \`landing.html\` terus mantau \`main.medan\` — tiap kamu
|
|
184
|
+
save, otomatis di-generate ulang. Buka \`landing.html\` di browser, refresh
|
|
185
|
+
manual tiap abis edit & save.
|
|
186
|
+
|
|
187
|
+
Mau generate sekali doang tanpa watch mode, pakai \`npm start\`.
|
|
161
188
|
|
|
162
189
|
## Belajar lebih lanjut
|
|
163
190
|
|