zixulu 0.0.2 → 0.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/dist/index.js +34 -13
- package/package.json +1 -1
- package/src/index.ts +34 -12
package/dist/index.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { createPromptModule } from 'inquirer';
|
|
4
4
|
import { readdirSync, mkdirSync, writeFileSync, statSync, readFileSync } from 'fs';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
5
6
|
|
|
6
7
|
var name = "zixulu";
|
|
7
|
-
var version = "0.0.
|
|
8
|
+
var version = "0.0.2";
|
|
8
9
|
var main = "index.js";
|
|
9
10
|
var license = "MIT";
|
|
10
11
|
var type = "module";
|
|
@@ -102,7 +103,7 @@ execSync("npx tsc --sourceMap -module ${target} -outDir dist/esm && npx tsc --so
|
|
|
102
103
|
`;
|
|
103
104
|
}
|
|
104
105
|
async function getPackageJson(answer) {
|
|
105
|
-
const { name, react } = answer;
|
|
106
|
+
const { name, react, esm, cjs } = answer;
|
|
106
107
|
const info = {
|
|
107
108
|
name,
|
|
108
109
|
version: "0.0.1",
|
|
@@ -112,22 +113,25 @@ async function getPackageJson(answer) {
|
|
|
112
113
|
license: "MIT",
|
|
113
114
|
type: "module",
|
|
114
115
|
exports: {
|
|
115
|
-
".": {
|
|
116
|
-
import: {
|
|
117
|
-
types: "./dist/index.d.ts",
|
|
118
|
-
default: "./dist/esm/index.js"
|
|
119
|
-
},
|
|
120
|
-
require: {
|
|
121
|
-
types: "./dist/index.d.ts",
|
|
122
|
-
default: "./dist/cjs/index.js"
|
|
123
|
-
}
|
|
124
|
-
}
|
|
116
|
+
".": {}
|
|
125
117
|
},
|
|
126
118
|
scripts: {
|
|
127
119
|
build: "node ./build.js"
|
|
128
120
|
},
|
|
129
121
|
devDependencies: {}
|
|
130
122
|
};
|
|
123
|
+
if (esm) {
|
|
124
|
+
info.exports["."]["import"] = {
|
|
125
|
+
types: "./dist/index.d.ts",
|
|
126
|
+
default: "./dist/esm/index.js"
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (cjs) {
|
|
130
|
+
info.exports["."]["require"] = {
|
|
131
|
+
types: "./dist/index.d.ts",
|
|
132
|
+
default: "./dist/cjs/index.js"
|
|
133
|
+
};
|
|
134
|
+
}
|
|
131
135
|
if (react) {
|
|
132
136
|
info.devDependencies["@types/react"] = `^${await getPackageLatestVersion("@types/react")}`;
|
|
133
137
|
info.devDependencies["@types/react-dom"] = `^${await getPackageLatestVersion("@types/react-dom")}`;
|
|
@@ -296,6 +300,13 @@ function getProjectAnswer(...exclude) {
|
|
|
296
300
|
name: "cjs",
|
|
297
301
|
message: "是否打包 Common JS:",
|
|
298
302
|
default: true
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
type: "list",
|
|
306
|
+
name: "install",
|
|
307
|
+
message: "现在就安装依赖:",
|
|
308
|
+
choices: ["Yarn", "Pnpm", "Npm", "No"],
|
|
309
|
+
default: "Yarn"
|
|
299
310
|
}
|
|
300
311
|
].filter(it => exclude.every(i => i !== it.name)));
|
|
301
312
|
}
|
|
@@ -342,8 +353,14 @@ program
|
|
|
342
353
|
exclude.push("cjs");
|
|
343
354
|
initAnswer.cjs = false;
|
|
344
355
|
}
|
|
356
|
+
if (options.esm === false && options.cjs === false) {
|
|
357
|
+
throw new Error("必须选择 ES Module 和 Common JS 至少一种");
|
|
358
|
+
}
|
|
345
359
|
const answer = { ...initAnswer, ...(await getProjectAnswer(...exclude)) };
|
|
346
|
-
const { name, react } = answer;
|
|
360
|
+
const { name, react, install, esm, cjs } = answer;
|
|
361
|
+
if (esm === false && cjs === false) {
|
|
362
|
+
throw new Error("必须选择 ES Module 和 Common JS 至少一种");
|
|
363
|
+
}
|
|
347
364
|
const dir = readdirSync("./");
|
|
348
365
|
if (!dir.includes(name)) {
|
|
349
366
|
mkdirSync(`./${name}`);
|
|
@@ -353,6 +370,10 @@ program
|
|
|
353
370
|
writeFileSync(`./${name}/build.js`, getBuildJS(answer));
|
|
354
371
|
writeFileSync(`./${name}/package.json`, await getPackageJson(answer));
|
|
355
372
|
writeFileSync(`./${name}/tsconfig.json`, getTSConfig(answer));
|
|
373
|
+
writeFileSync(`./${name}/.gitignore`, "node_modules");
|
|
374
|
+
if (install !== "No") {
|
|
375
|
+
execSync(`${install.toLowerCase()} install`, { cwd: `./${name}` });
|
|
376
|
+
}
|
|
356
377
|
console.log("创建项目成功");
|
|
357
378
|
});
|
|
358
379
|
program
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Command } from "commander"
|
|
|
4
4
|
import pkg from "../package.json"
|
|
5
5
|
import { createPromptModule } from "inquirer"
|
|
6
6
|
import { mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs"
|
|
7
|
+
import { execSync } from "child_process"
|
|
7
8
|
|
|
8
9
|
const prompt = createPromptModule()
|
|
9
10
|
|
|
@@ -18,6 +19,7 @@ interface ProjectAnswer {
|
|
|
18
19
|
css: boolean
|
|
19
20
|
esm: boolean
|
|
20
21
|
cjs: boolean
|
|
22
|
+
install: "No" | "Yarn" | "Pnpm" | "Npm"
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
const JavaScriptTargets: JavaScriptTarget[] = ["ES2015", "ES2016", "ES2017", "ES2018", "ES2019", "ES2020", "ES2021", "ES2022", "ES2023", "ESNext"]
|
|
@@ -85,7 +87,7 @@ execSync("npx tsc --sourceMap -module ${target} -outDir dist/esm && npx tsc --so
|
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
async function getPackageJson(answer: ProjectAnswer) {
|
|
88
|
-
const { name, react } = answer
|
|
90
|
+
const { name, react, esm, cjs } = answer
|
|
89
91
|
const info: any = {
|
|
90
92
|
name,
|
|
91
93
|
version: "0.0.1",
|
|
@@ -95,22 +97,25 @@ async function getPackageJson(answer: ProjectAnswer) {
|
|
|
95
97
|
license: "MIT",
|
|
96
98
|
type: "module",
|
|
97
99
|
exports: {
|
|
98
|
-
".": {
|
|
99
|
-
import: {
|
|
100
|
-
types: "./dist/index.d.ts",
|
|
101
|
-
default: "./dist/esm/index.js"
|
|
102
|
-
},
|
|
103
|
-
require: {
|
|
104
|
-
types: "./dist/index.d.ts",
|
|
105
|
-
default: "./dist/cjs/index.js"
|
|
106
|
-
}
|
|
107
|
-
}
|
|
100
|
+
".": {}
|
|
108
101
|
},
|
|
109
102
|
scripts: {
|
|
110
103
|
build: "node ./build.js"
|
|
111
104
|
},
|
|
112
105
|
devDependencies: {}
|
|
113
106
|
}
|
|
107
|
+
if (esm) {
|
|
108
|
+
info.exports["."]["import"] = {
|
|
109
|
+
types: "./dist/index.d.ts",
|
|
110
|
+
default: "./dist/esm/index.js"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (cjs) {
|
|
114
|
+
info.exports["."]["require"] = {
|
|
115
|
+
types: "./dist/index.d.ts",
|
|
116
|
+
default: "./dist/cjs/index.js"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
114
119
|
if (react) {
|
|
115
120
|
info.devDependencies["@types/react"] = `^${await getPackageLatestVersion("@types/react")}`
|
|
116
121
|
info.devDependencies["@types/react-dom"] = `^${await getPackageLatestVersion("@types/react-dom")}`
|
|
@@ -283,6 +288,13 @@ function getProjectAnswer<T extends keyof ProjectAnswer>(...exclude: T[]): Promi
|
|
|
283
288
|
name: "cjs",
|
|
284
289
|
message: "是否打包 Common JS:",
|
|
285
290
|
default: true
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
type: "list",
|
|
294
|
+
name: "install",
|
|
295
|
+
message: "现在就安装依赖:",
|
|
296
|
+
choices: ["Yarn", "Pnpm", "Npm", "No"],
|
|
297
|
+
default: "Yarn"
|
|
286
298
|
}
|
|
287
299
|
].filter(it => exclude.every(i => i !== it.name))
|
|
288
300
|
)
|
|
@@ -334,8 +346,14 @@ program
|
|
|
334
346
|
exclude.push("cjs")
|
|
335
347
|
initAnswer.cjs = false
|
|
336
348
|
}
|
|
349
|
+
if (options.esm === false && options.cjs === false) {
|
|
350
|
+
throw new Error("必须选择 ES Module 和 Common JS 至少一种")
|
|
351
|
+
}
|
|
337
352
|
const answer = { ...initAnswer, ...(await getProjectAnswer(...exclude)) } as ProjectAnswer
|
|
338
|
-
const { name, react } = answer
|
|
353
|
+
const { name, react, install, esm, cjs } = answer
|
|
354
|
+
if (esm === false && cjs === false) {
|
|
355
|
+
throw new Error("必须选择 ES Module 和 Common JS 至少一种")
|
|
356
|
+
}
|
|
339
357
|
const dir = readdirSync("./")
|
|
340
358
|
if (!dir.includes(name)) {
|
|
341
359
|
mkdirSync(`./${name}`)
|
|
@@ -345,6 +363,10 @@ program
|
|
|
345
363
|
writeFileSync(`./${name}/build.js`, getBuildJS(answer))
|
|
346
364
|
writeFileSync(`./${name}/package.json`, await getPackageJson(answer))
|
|
347
365
|
writeFileSync(`./${name}/tsconfig.json`, getTSConfig(answer))
|
|
366
|
+
writeFileSync(`./${name}/.gitignore`, "node_modules")
|
|
367
|
+
if (install !== "No") {
|
|
368
|
+
execSync(`${install.toLowerCase()} install`, { cwd: `./${name}` })
|
|
369
|
+
}
|
|
348
370
|
console.log("创建项目成功")
|
|
349
371
|
})
|
|
350
372
|
|