create-jnrs-vue 1.2.12 → 1.2.13
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/bin/create.mjs +33 -46
- package/jnrs-vue/.cspell.json +17 -0
- package/jnrs-vue/package.json +2 -1
- package/package.json +1 -1
package/bin/create.mjs
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @Author : TanRui
|
|
3
3
|
* @WeChat : Tan578853789
|
|
4
4
|
* @File : create.mjs
|
|
5
|
-
* @Date : 2026/
|
|
6
|
-
* @Desc. :
|
|
5
|
+
* @Date : 2026/03/16
|
|
6
|
+
* @Desc. : 脚手架创建脚本
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { fileURLToPath } from 'url'
|
|
@@ -72,20 +72,11 @@ function toValidPackageName(projectName) {
|
|
|
72
72
|
.replace(/[^a-z0-9-~@/._]/g, '-')
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
// 提取 workspace:* 依赖
|
|
76
|
-
function extractWorkspaceDeps(pkg) {
|
|
77
|
-
const deps = { ...pkg.dependencies, ...pkg.devDependencies }
|
|
78
|
-
const workspaceDeps = Object.entries(deps)
|
|
79
|
-
.filter(([_, value]) => value === 'workspace:*')
|
|
80
|
-
.map(([name]) => name)
|
|
81
|
-
return workspaceDeps
|
|
82
|
-
}
|
|
83
|
-
|
|
84
75
|
async function main() {
|
|
85
76
|
const argv = minimist(process.argv.slice(2), { string: ['_'] })
|
|
86
77
|
let targetDir = argv._[0]
|
|
87
78
|
|
|
88
|
-
//
|
|
79
|
+
// 判断是否使用当前目录
|
|
89
80
|
const isCurrentDir = targetDir === '.'
|
|
90
81
|
|
|
91
82
|
if (!targetDir) {
|
|
@@ -122,47 +113,43 @@ async function main() {
|
|
|
122
113
|
|
|
123
114
|
await fs.cp(templateDir, root, { recursive: true })
|
|
124
115
|
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
const pkgName = isCurrentDir
|
|
129
|
-
? toValidPackageName(process.cwd().split(/[\\/]/).pop() || 'jnrs-vue')
|
|
130
|
-
: toValidPackageName(targetDir)
|
|
116
|
+
// 定义可选的内部模块
|
|
117
|
+
const allWorkspaceDeps = ['@jnrs/shared', '@jnrs/vue-core', '@jnrs/lingshu-smart']
|
|
118
|
+
const defaultSelected = ['@jnrs/shared', '@jnrs/vue-core']
|
|
131
119
|
|
|
132
|
-
|
|
120
|
+
const { selected: selectedWorkspaceDeps } = await prompts({
|
|
121
|
+
type: 'multiselect',
|
|
122
|
+
name: 'selected',
|
|
123
|
+
message: '请选择要包含的内部依赖模块(默认选中常用模块):',
|
|
124
|
+
choices: allWorkspaceDeps.map((dep) => ({
|
|
125
|
+
title: dep,
|
|
126
|
+
value: dep,
|
|
127
|
+
selected: defaultSelected.includes(dep)
|
|
128
|
+
})),
|
|
129
|
+
instructions: false
|
|
130
|
+
})
|
|
133
131
|
|
|
134
|
-
//
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (allWorkspaceDeps.length > 0) {
|
|
139
|
-
const defaultSelected = ['@jnrs/shared', '@jnrs/vue-core'].filter((dep) => allWorkspaceDeps.includes(dep))
|
|
140
|
-
|
|
141
|
-
const { selected } = await prompts({
|
|
142
|
-
type: 'multiselect',
|
|
143
|
-
name: 'selected',
|
|
144
|
-
message: '请选择要包含的 workspace 依赖(默认选中常用模块):',
|
|
145
|
-
choices: allWorkspaceDeps.map((dep) => ({
|
|
146
|
-
title: dep,
|
|
147
|
-
value: dep,
|
|
148
|
-
selected: defaultSelected.includes(dep)
|
|
149
|
-
})),
|
|
150
|
-
instructions: false
|
|
151
|
-
})
|
|
132
|
+
// 读取并更新 package.json
|
|
133
|
+
const pkgPath = join(root, 'package.json')
|
|
134
|
+
const pkg = JSON.parse(await fs.readFile(pkgPath, 'utf8'))
|
|
152
135
|
|
|
153
|
-
|
|
136
|
+
pkg.dependencies = pkg.dependencies || {}
|
|
137
|
+
pkg.devDependencies = pkg.devDependencies || {}
|
|
154
138
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
delete pkg[section][dep]
|
|
161
|
-
}
|
|
139
|
+
// 移除未选中的模块(无论在 dependencies 还是 devDependencies)
|
|
140
|
+
for (const section of ['dependencies', 'devDependencies']) {
|
|
141
|
+
for (const dep of Object.keys(pkg[section])) {
|
|
142
|
+
if (allWorkspaceDeps.includes(dep) && !selectedWorkspaceDeps?.includes(dep)) {
|
|
143
|
+
delete pkg[section][dep]
|
|
162
144
|
}
|
|
163
145
|
}
|
|
164
146
|
}
|
|
165
|
-
|
|
147
|
+
|
|
148
|
+
// 设置包名
|
|
149
|
+
const pkgName = isCurrentDir
|
|
150
|
+
? toValidPackageName(process.cwd().split(/[\\/]/).pop() || 'jnrs-vue')
|
|
151
|
+
: toValidPackageName(targetDir)
|
|
152
|
+
pkg.name = pkgName
|
|
166
153
|
|
|
167
154
|
await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2))
|
|
168
155
|
|
package/jnrs-vue/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jnrs-vue",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.13",
|
|
4
4
|
"description": "JNRS 信息化管理系统",
|
|
5
5
|
"author": "talia_tan",
|
|
6
6
|
"private": true,
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
38
38
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
39
39
|
"@vue/tsconfig": "^0.8.1",
|
|
40
|
+
"cspell": "^9.7.0",
|
|
40
41
|
"eslint": "^9.39.1",
|
|
41
42
|
"eslint-plugin-vue": "~10.4.0",
|
|
42
43
|
"jiti": "^2.6.1",
|