@ghini/xstart 25.11.28033518 → 25.12.10043118
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/.clinerules +2 -0
- package/README.md +25 -6
- package/build.js +11 -6
- package/package.json +8 -7
- package/src/index.ts +2 -0
- package/src/start.ts +6 -0
- package/test/0.js +1 -1
- package/tsconfig.json +24 -0
- package/dev/lib/index.js +0 -1
- package/dev/lib/start.js +0 -3
- package/dev/main.d.ts +0 -3
- package/dev/main.js +0 -5
- package/dist/lib/index.js +0 -1
- package/dist/lib/start.js +0 -3
- package/dist/main.d.ts +0 -3
- package/dist/main.js +0 -5
package/.clinerules
ADDED
package/README.md
CHANGED
|
@@ -1,15 +1,34 @@
|
|
|
1
|
-
# 一个标准
|
|
1
|
+
# 一个标准 TypeScript 2025 的 npm 库脚手架
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### 开发
|
|
4
|
+
```bash
|
|
5
|
+
npx tsc --watch
|
|
6
|
+
npm run type-check # 类型检查(不生成文件)
|
|
7
|
+
npm run build # 编译 TypeScript + 打包 + 更新版本号
|
|
8
|
+
```
|
|
4
9
|
|
|
5
|
-
|
|
10
|
+
### 发布
|
|
11
|
+
```bash
|
|
12
|
+
npm run pub # 构建 + 发布到 npm + 提交 git
|
|
6
13
|
```
|
|
14
|
+
|
|
15
|
+
## 🔧 TypeScript 配置亮点
|
|
16
|
+
|
|
17
|
+
- `moduleResolution: "bundler"` - 2025 最新模块解析策略
|
|
18
|
+
- `verbatimModuleSyntax: true` - 严格 ESM 语法
|
|
19
|
+
- `strict: true` - 全部严格类型检查
|
|
20
|
+
- `declaration: true` - 自动生成类型声明
|
|
21
|
+
|
|
22
|
+
## 📦 创建新库
|
|
23
|
+
|
|
24
|
+
全文件替换 `xstart` 为新库名:
|
|
25
|
+
```bash
|
|
7
26
|
Remove-Item -Recurse -Force .git
|
|
8
27
|
git init
|
|
9
28
|
git add .
|
|
10
29
|
git commit -m "Initial commit"
|
|
11
|
-
git branch -M
|
|
12
|
-
git remote add origin
|
|
13
|
-
git push -u origin
|
|
30
|
+
git branch -M xstart
|
|
31
|
+
git remote add origin git@github.com:xghini/mynpm.git
|
|
32
|
+
git push -u origin xstart
|
|
14
33
|
npm run pub
|
|
15
34
|
```
|
package/build.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// build.js
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
const srcDir = './src';
|
|
4
6
|
const devDir = './dev';
|
|
5
7
|
const distDir = './dist';
|
|
6
8
|
const packageJsonPath = './package.json';
|
|
@@ -54,17 +56,20 @@ function generateVersionFromDate() {
|
|
|
54
56
|
try {
|
|
55
57
|
console.log('🚀 开始执行构建流程...');
|
|
56
58
|
|
|
57
|
-
// 步骤 1: 清理旧的 'dist' 目录
|
|
59
|
+
// 步骤 1: 清理旧的 'dist' 和 'dev' 目录
|
|
58
60
|
if (fs.existsSync(distDir)) {
|
|
59
61
|
console.log(`[1/3] 正在删除旧目录: ${distDir}`);
|
|
60
|
-
// fs.rmSync 是一个现代且高效的递归删除目录的方法
|
|
61
62
|
fs.rmSync(distDir, { recursive: true, force: true });
|
|
62
63
|
}
|
|
64
|
+
if (fs.existsSync(devDir)) {
|
|
65
|
+
console.log(`[1/3] 正在删除旧目录: ${devDir}`);
|
|
66
|
+
fs.rmSync(devDir, { recursive: true, force: true });
|
|
67
|
+
}
|
|
63
68
|
|
|
64
|
-
// 步骤 2:
|
|
65
|
-
console.log(`[2/3]
|
|
66
|
-
|
|
67
|
-
console.log('
|
|
69
|
+
// 步骤 2: 运行 TypeScript 编译
|
|
70
|
+
console.log(`[2/3] 正在编译 TypeScript...`);
|
|
71
|
+
execSync('npx tsc', { stdio: 'inherit' });
|
|
72
|
+
console.log('...TypeScript 编译完成。');
|
|
68
73
|
|
|
69
74
|
// 步骤 3: 更新 package.json 中的版本号
|
|
70
75
|
console.log(`[3/3] 正在更新 ${packageJsonPath} 中的版本号...`);
|
package/package.json
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ghini/xstart",
|
|
3
|
-
"version": "25.
|
|
3
|
+
"version": "25.12.10043118",
|
|
4
4
|
"scripts": {
|
|
5
|
+
"type-check": "tsc --noEmit",
|
|
5
6
|
"build": "node ./build.js",
|
|
6
7
|
"pub": "npm run build && npm publish && git add . && git commit -m 'update' && git push",
|
|
7
8
|
"update": "npm cache clean --force&&npm update"
|
|
8
9
|
},
|
|
9
10
|
"exports": {
|
|
10
11
|
".": {
|
|
11
|
-
"import": "./dist/
|
|
12
|
-
"types": "./dist/
|
|
13
|
-
},
|
|
14
|
-
"./dev": {
|
|
15
|
-
"import": "./dev/main.js",
|
|
16
|
-
"types": "./dev/main.d.ts"
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
17
14
|
}
|
|
18
15
|
},
|
|
19
16
|
"type": "module",
|
|
@@ -21,5 +18,9 @@
|
|
|
21
18
|
"license": "MIT",
|
|
22
19
|
"publishConfig": {
|
|
23
20
|
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^24.10.2",
|
|
24
|
+
"typescript": "^5.9.3"
|
|
24
25
|
}
|
|
25
26
|
}
|
package/src/index.ts
ADDED
package/src/start.ts
ADDED
package/test/0.js
CHANGED
package/tsconfig.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"verbatimModuleSyntax": true,
|
|
7
|
+
"lib": ["ES2022"],
|
|
8
|
+
"types": ["node"],
|
|
9
|
+
"declaration": true,
|
|
10
|
+
"declarationMap": true,
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"rootDir": "./src",
|
|
14
|
+
"strict": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"forceConsistentCasingInFileNames": true,
|
|
18
|
+
"resolveJsonModule": true,
|
|
19
|
+
"isolatedModules": true,
|
|
20
|
+
"allowSyntheticDefaultImports": true
|
|
21
|
+
},
|
|
22
|
+
"include": ["src/**/*"],
|
|
23
|
+
"exclude": ["node_modules", "dist", "dev"]
|
|
24
|
+
}
|
package/dev/lib/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./start.js";
|
package/dev/lib/start.js
DELETED
package/dev/main.d.ts
DELETED
package/dev/main.js
DELETED
package/dist/lib/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./start.js";
|
package/dist/lib/start.js
DELETED
package/dist/main.d.ts
DELETED