create-lve 0.2.6 → 0.2.8

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/index.js CHANGED
@@ -120,25 +120,29 @@ async function main() {
120
120
  message: '选择框架',
121
121
  options: [
122
122
  { value: 'react', label: 'React 19', hint: 'VitePlus + Compiler' },
123
+ { value: 'next', label: 'Next.js 16', hint: 'Oxc + Server Components (Fullstack)' },
123
124
  { value: 'vue', label: 'Vue 3', hint: 'VitePlus + Optimized' },
124
125
  ],
125
126
  }),
126
- cssEngine: () =>
127
- p.select({
128
- message: '选择 CSS 引擎',
129
- options: [
130
- {
131
- value: 'unocss',
132
- label: 'UnoCSS',
133
- hint: '⚡️ 战机级性能:动态代码注入,实现源码级‘无感’混淆',
134
- },
127
+ cssEngine: ({ results }) =>
128
+ results.framework === 'next' ?
129
+ undefined :
130
+ p.select(
135
131
  {
136
- value: 'tailwind',
137
- label: 'Tailwind v4',
138
- hint: '🛡️ 装甲级稳定:v4 引擎重构,完美适配所有主流 UI 库',
139
- },
140
- ],
141
- }),
132
+ message: '选择 CSS 引擎',
133
+ options: [
134
+ {
135
+ value: 'tailwind',
136
+ label: 'Tailwind v4',
137
+ hint: '🛡️ 装甲级稳定:v4 引擎重构,完美适配所有主流 UI 库',
138
+ },
139
+ {
140
+ value: 'unocss',
141
+ label: 'UnoCSS',
142
+ hint: '⚡️ 战机级性能:动态代码注入,实现源码级‘无感’混淆',
143
+ },
144
+ ],
145
+ }),
142
146
  install: () =>
143
147
  p.confirm({
144
148
  message: '是否现在自动安装依赖?',
@@ -160,17 +164,19 @@ async function main() {
160
164
  const isUno = project.cssEngine === 'unocss'
161
165
  const s = p.spinner()
162
166
 
163
- try {
164
- execSync('vp --version', { stdio: 'ignore' })
165
- } catch {
166
- p.log.error(pc.red('未检测到 VitePlus (vp) 环境'))
167
- p.note(
168
- pc.white(
169
- `请先安装 vp 工具链:\n${pc.cyan('npm install -g @voidzero-dev/vite-plus')}\n\n详情请参考: ${pc.underline('https://viteplus.dev/guide/')}`,
170
- ),
171
- '环境缺失',
172
- )
173
- process.exit(1)
167
+ const checkVp = () => {
168
+ try {
169
+ execSync('vp --version', { stdio: 'ignore' })
170
+ } catch {
171
+ p.log.error(pc.red('未检测到 VitePlus (vp) 环境'))
172
+ p.note(
173
+ pc.white(
174
+ `请先安装 vp 工具链:\n${pc.cyan('npm install -g @voidzero-dev/vite-plus')}`
175
+ ),
176
+ '环境缺失',
177
+ )
178
+ process.exit(1)
179
+ }
174
180
  }
175
181
 
176
182
  s.start('🛠️ 正在按需装配架构...')
@@ -183,7 +189,7 @@ async function main() {
183
189
 
184
190
  try {
185
191
  execSync('git init', { cwd: targetDir, stdio: 'ignore' })
186
- } catch {}
192
+ } catch { }
187
193
 
188
194
  const oldGit = path.join(targetDir, '_gitignore')
189
195
  if (fs.existsSync(oldGit)) await fs.move(oldGit, path.join(targetDir, '.gitignore'))
@@ -192,6 +198,31 @@ async function main() {
192
198
  const pkg = await fs.readJson(pkgPath)
193
199
  pkg.name = path.basename(targetDir)
194
200
 
201
+ // ================= Next.js 分支逻辑 =================
202
+ if (project.framework === 'next') {
203
+ await fs.writeJson(pkgPath, pkg, { spaces: 2 })
204
+
205
+ s.message(pc.green('检测到全栈环境,正在执行 pnpm install'))
206
+
207
+ const installCmd = 'pnpm'
208
+ try {
209
+ execSync(`${installCmd} install`, { cwd: targetDir, stdio: 'ignore' })
210
+
211
+ s.message(pc.green('使用 oxfmt 优化全栈代码结构'))
212
+ execSync(`${installCmd} fmt`, { cwd: targetDir, stdio: 'ignore' })
213
+
214
+ s.stop(pc.green('Next.js 全栈环境装配就绪'))
215
+ } catch {
216
+ s.stop(pc.red('依赖安装失败,请进入目录后手动安装'))
217
+ }
218
+
219
+ p.note(pc.cyan(`cd ${project.path}\npnpm dev`), '快速开始')
220
+ p.outro(pc.magenta('✨ 极致全栈环境已就绪!'))
221
+ return
222
+ }
223
+
224
+ checkVp()
225
+
195
226
  if (isUno) {
196
227
  pkg.devDependencies['unocss'] = 'latest'
197
228
  } else {
@@ -295,7 +326,7 @@ export default defineConfig({
295
326
 
296
327
  try {
297
328
  execSync('vp fmt', { cwd: targetDir, stdio: 'ignore' })
298
- } catch {}
329
+ } catch { }
299
330
 
300
331
  s.stop(pc.green('全套环境装配就绪'))
301
332
  } catch {
@@ -310,7 +341,7 @@ export default defineConfig({
310
341
  p.note(pc.cyan(nextSteps), '快速开始')
311
342
  p.outro(
312
343
  `${pc.magenta('✨ 已经为你准备好了极致的开发环境!')}\n` +
313
- `${pc.gray(`==== ${project.framework} + ${project.cssEngine} ====`)}`,
344
+ `${pc.gray(`==== ${project.framework} + ${project.cssEngine} ====`)}`,
314
345
  )
315
346
  } catch (err) {
316
347
  s.stop(pc.red('手术失败'))
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "create-lve",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "bin": {
5
5
  "create-lve": "index.js"
6
6
  },
7
7
  "files": [
8
8
  "index.js",
9
9
  "template-react",
10
- "template-vue"
10
+ "template-vue",
11
+ "template-next"
11
12
  ],
12
13
  "type": "module",
13
14
  "scripts": {
@@ -37,22 +37,6 @@
37
37
  "editor.defaultFormatter": "oxc.oxc-vscode"
38
38
  },
39
39
 
40
- // ==================== Next.js 专用 ====================
41
- "workbench.editor.customLabels.patterns": {
42
- "**/app/**/layout.{js,jsx,ts,tsx}": "${dirname}/layout",
43
- "**/app/**/page.{js,jsx,ts,tsx}": "${dirname}/page",
44
- "**/app/**/route.{js,jsx,ts,tsx}": "${dirname}/route",
45
- "**/app/**/loading.{js,jsx,ts,tsx}": "${dirname}/loading",
46
- "**/app/**/template.{js,jsx,ts,tsx}": "${dirname}/template",
47
- "**/app/**/default.{js,jsx,ts,tsx}": "${dirname}/default",
48
- "**/app/**/error.{js,jsx,ts,tsx}": "${dirname}/error",
49
- "**/app/**/not-found.{js,jsx,ts,tsx}": "${dirname}/not-found"
50
- },
51
-
52
- // ==================== TypeScript(解决 Next.js TS 问题)===================
53
- "typescript.tsdk": "node_modules/typescript/lib",
54
- "typescript.enablePromptUseWorkspaceTsdk": true,
55
-
56
40
  // ==================== Tailwind + shadcn/ui(强烈推荐)===================
57
41
  "tailwindCSS.experimental.classRegex": [["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]],
58
42
  "tailwindCSS.includeLanguages": {