@kmlckj/licos-ai-cli 0.0.34 → 0.0.35

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.
@@ -6,8 +6,15 @@ function normalizeBasePath(value?: string): string | undefined {
6
6
  return `/${trimmed.replace(/^\/+|\/+$/g, '')}`;
7
7
  }
8
8
 
9
- const basePath =
10
- process.env.LICOS_PROJECT_ENV === 'PROD' ? normalizeBasePath(process.env.BASE_PATH) : undefined;
9
+ function isProdProjectEnv(value?: string): boolean {
10
+ const normalized = value?.trim().toLowerCase();
11
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
12
+ }
13
+
14
+ const deployBasePath = process.env.BASE_PATH;
15
+ const shouldUseBasePath = Boolean(deployBasePath) || isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
16
+
17
+ const basePath = shouldUseBasePath ? normalizeBasePath(deployBasePath) : undefined;
11
18
 
12
19
  const nextConfig: NextConfig = {
13
20
  ...(basePath ? { basePath } : {}),
@@ -2,7 +2,12 @@ import { createServer } from 'http';
2
2
  import { parse } from 'url';
3
3
  import next from 'next';
4
4
 
5
- const dev = process.env.LICOS_PROJECT_ENV !== 'PROD';
5
+ function isProdProjectEnv(value?: string): boolean {
6
+ const normalized = value?.trim().toLowerCase();
7
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
8
+ }
9
+
10
+ const dev = !isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
6
11
  const hostname = process.env.HOSTNAME || 'localhost';
7
12
  const port = parseInt(process.env.PORT || '<%= port %>', 10);
8
13
 
@@ -11,16 +11,22 @@ function normalizeBaseURL(value?: string): string {
11
11
  return `/${trimmed.replace(/^\/+|\/+$/g, '')}/`;
12
12
  }
13
13
 
14
- const publicBaseURL =
15
- process.env.LICOS_PROJECT_ENV === 'PROD'
16
- ? normalizeBaseURL(process.env.NUXT_PUBLIC_BASE_URL || process.env.BASE_PATH)
17
- : '/';
14
+ function isProdProjectEnv(value?: string): boolean {
15
+ const normalized = value?.trim().toLowerCase();
16
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
17
+ }
18
+
19
+ const isProd = isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
20
+ const deployBaseURL = process.env.NUXT_PUBLIC_BASE_URL || process.env.BASE_PATH;
21
+ const shouldUseBaseURL = Boolean(deployBaseURL) || isProd;
22
+
23
+ const publicBaseURL = shouldUseBaseURL ? normalizeBaseURL(deployBaseURL) : '/';
18
24
 
19
25
  export default defineNuxtConfig({
20
26
  compatibilityDate: '2025-07-15',
21
27
  // Disable devtools in CI/test environments (prevents hanging in headless mode)
22
28
  devtools: {
23
- enabled: process.env.CI !== 'true' && process.env.LICOS_PROJECT_ENV !== 'PROD',
29
+ enabled: process.env.CI !== 'true' && !isProd,
24
30
  },
25
31
  telemetry: false,
26
32
 
@@ -2,7 +2,8 @@
2
2
  * 请求日志中间件(仅开发环境)
3
3
  */
4
4
  export default defineEventHandler((event) => {
5
- const isDev = process.env.LICOS_PROJECT_ENV !== 'PROD';
5
+ const normalizedEnv = process.env.LICOS_PROJECT_ENV?.trim().toLowerCase();
6
+ const isDev = !['prod', 'production', 'release'].includes(normalizedEnv || '');
6
7
 
7
8
  if (isDev) {
8
9
  console.log(`${event.method} ${event.path}`);
@@ -19,8 +19,38 @@ pnpm remove <package> # 移除依赖
19
19
  - 用户要求创建页面或应用时,必须把主入口实现到 `src/pages/index/index.tsx`,或将 `src/app.config.ts` 的第一个页面调整为实际入口;禁止保留默认“应用开发中”占位首页。
20
20
  - `src/` 下禁止直接使用 `process.env`,不要使用 `__PUBLIC_PATH__`。请求前缀使用全局 `PROJECT_DOMAIN`,构建平台判断使用全局 `LICOS_TARO_ENV`。
21
21
  - 不要在业务代码里使用裸标识符 `TARO_ENV`。如需展示文字 “TARO_ENV”,只作为普通中文/英文说明文本使用,不要把它当作变量读取。
22
+ - Taro API 只允许单次导入,统一写 `import Taro, { useLoad } from '@tarojs/taro'`,不要同时写 `import { useLoad } from '@tarojs/taro'` 和 `import Taro from '@tarojs/taro'`。
23
+ - 需要在 `src/` 展示构建环境或项目域名时,直接读取全局常量:`LICOS_TARO_ENV || 'unknown'`、`PROJECT_DOMAIN || ''`,不要写 `process.env.TARO_ENV` 或 `process.env.PROJECT_DOMAIN`。
24
+ - 需要引用本地资源时使用 ESM import,例如 `import logoUrl from '@/assets/images/logo.svg'`,不要在 `src/` 中写 CommonJS `require(...)`。
22
25
  - 从第三方图标包导入前必须确认导出存在;不确定时优先使用已验证的 `Package`、`Globe`、`Cpu`、`Layers` 等基础图标,避免引入不存在的命名导出导致构建失败。
23
26
 
27
+ 正确示例:
28
+
29
+ ```tsx
30
+ import { View, Text, Image } from '@tarojs/components'
31
+ import Taro, { useLoad } from '@tarojs/taro'
32
+ import logoUrl from '@/assets/images/logo.svg'
33
+ import { Textarea } from '@/components/ui/textarea'
34
+
35
+ export default function IndexPage() {
36
+ useLoad(() => {
37
+ Taro.setNavigationBarTitle({ title: '首页' })
38
+ })
39
+
40
+ const envName = LICOS_TARO_ENV || 'unknown'
41
+ const projectDomain = PROJECT_DOMAIN || '未配置'
42
+
43
+ return (
44
+ <View>
45
+ <Image src={logoUrl} mode="aspectFit" />
46
+ <Text className="block">构建类型:{envName}</Text>
47
+ <Text className="block">项目域:{projectDomain}</Text>
48
+ <Textarea value="测试结果" disabled autoHeight />
49
+ </View>
50
+ )
51
+ }
52
+ ```
53
+
24
54
  ## 图片与视频资源使用规范
25
55
 
26
56
  **强制规则**:图片、视频等静态资源必须通过 TOS 对象存储管理,代码中使用 TOS 返回的 URL 引用。
@@ -6,7 +6,12 @@ import express from 'express';
6
6
  import router from './routes/index';
7
7
  import { setupVite } from './vite';
8
8
 
9
- const isDev = process.env.LICOS_PROJECT_ENV !== 'PROD';
9
+ function isProdProjectEnv(value?: string): boolean {
10
+ const normalized = value?.trim().toLowerCase();
11
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
12
+ }
13
+
14
+ const isDev = !isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
10
15
  const port = parseInt(process.env.PORT || '<%= port %>', 10);
11
16
  const hostname = process.env.HOSTNAME || 'localhost';
12
17
  const app = express();
@@ -6,7 +6,12 @@ import express from 'express';
6
6
  import path from 'path';
7
7
  import fs from 'fs';
8
8
 
9
- const isDev = process.env.LICOS_PROJECT_ENV !== 'PROD';
9
+ function isProdProjectEnv(value?: string): boolean {
10
+ const normalized = value?.trim().toLowerCase();
11
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
12
+ }
13
+
14
+ const isDev = !isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
10
15
 
11
16
  /**
12
17
  * 集成 Vite 开发服务器(中间件模式)
@@ -6,8 +6,16 @@ function normalizeBasePath(value?: string): string {
6
6
  return `/${trimmed.replace(/^\/+|\/+$/g, '')}/`;
7
7
  }
8
8
 
9
+ function isProdProjectEnv(value?: string): boolean {
10
+ const normalized = value?.trim().toLowerCase();
11
+ return normalized === 'prod' || normalized === 'production' || normalized === 'release';
12
+ }
13
+
14
+ const deployBasePath = process.env.VITE_BASE_PATH || process.env.BASE_PATH;
15
+ const shouldUseBasePath = Boolean(deployBasePath) || isProdProjectEnv(process.env.LICOS_PROJECT_ENV);
16
+
9
17
  export default defineConfig({
10
- base: process.env.LICOS_PROJECT_ENV === 'PROD' ? normalizeBasePath(process.env.BASE_PATH) : '/',
18
+ base: shouldUseBasePath ? normalizeBasePath(deployBasePath) : '/',
11
19
  server: {
12
20
  port: <%= port %>,
13
21
  host: '0.0.0.0',
package/lib/cli.js CHANGED
@@ -2109,7 +2109,7 @@ const EventBuilder = {
2109
2109
  };
2110
2110
 
2111
2111
  var name = "@kmlckj/licos-ai-cli";
2112
- var version = "0.0.34";
2112
+ var version = "0.0.35";
2113
2113
  var description = "LICOS AI coding workspace CLI - project template engine and dev tools";
2114
2114
  var license = "MIT";
2115
2115
  var author = "kmlckj";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmlckj/licos-ai-cli",
3
- "version": "0.0.34",
3
+ "version": "0.0.35",
4
4
  "description": "LICOS AI coding workspace CLI - project template engine and dev tools",
5
5
  "license": "MIT",
6
6
  "author": "kmlckj",