@quicktvui/web-cli 1.0.0-beta.41 → 1.0.0-beta.43

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/qt-web-cli.js CHANGED
File without changes
@@ -96,7 +96,43 @@ function detectCSSLoader() {
96
96
  return 'style-loader'
97
97
  }
98
98
 
99
+ /**
100
+ * 检测全局 Sass 变量文件
101
+ * 注意:返回绝对路径,避免 sass 相对于当前文件解析路径的问题
102
+ */
103
+ function detectSassAdditionalData() {
104
+ // 常见的全局变量文件路径
105
+ const possiblePaths = [
106
+ 'src/styles/variables.scss',
107
+ 'src/styles/variables.sass',
108
+ 'src/styles/_variables.scss',
109
+ 'src/styles/_variables.sass',
110
+ 'src/assets/styles/variables.scss',
111
+ 'src/assets/styles/variables.sass',
112
+ 'src/assets/scss/variables.scss',
113
+ 'src/assets/scss/variables.sass',
114
+ 'src/assets/scss/_variables.scss',
115
+ 'src/assets/scss/_variables.sass',
116
+ 'src/scss/variables.scss',
117
+ 'src/scss/variables.sass',
118
+ 'src/scss/_variables.scss',
119
+ 'src/scss/_variables.sass',
120
+ 'src/css/variables.scss',
121
+ 'src/css/variables.sass',
122
+ ]
123
+
124
+ for (const relativePath of possiblePaths) {
125
+ const fullPath = path.join(projectRoot, relativePath)
126
+ if (fs.existsSync(fullPath)) {
127
+ // 使用绝对路径,避免 sass 相对于当前编译文件解析路径的问题
128
+ return `@import "${fullPath}";\n`
129
+ }
130
+ }
131
+ return ''
132
+ }
133
+
99
134
  const cssLoader = detectCSSLoader()
135
+ const sassAdditionalData = detectSassAdditionalData()
100
136
 
101
137
  // 获取 web-cli 目录下的 loader 路径
102
138
  const cliDir = path.resolve(__dirname, '..')
@@ -240,9 +276,29 @@ module.exports = {
240
276
  { test: /\.css$/, use: [cssLoader] },
241
277
  // Less
242
278
  { test: /\.less$/, use: [cssLoader, 'less-loader'] },
243
- // Sass/SCSS
244
- { test: /\.scss$/, use: [cssLoader, 'sass-loader'] },
245
- { test: /\.sass$/, use: [cssLoader, 'sass-loader'] },
279
+ // Sass/SCSS - 自动注入全局变量文件
280
+ {
281
+ test: /\.scss$/,
282
+ use: [
283
+ cssLoader,
284
+ {
285
+ loader: 'sass-loader',
286
+ options: sassAdditionalData ? { additionalData: sassAdditionalData } : {},
287
+ },
288
+ ],
289
+ },
290
+ {
291
+ test: /\.sass$/,
292
+ use: [
293
+ cssLoader,
294
+ {
295
+ loader: 'sass-loader',
296
+ options: sassAdditionalData
297
+ ? { additionalData: sassAdditionalData, sassOptions: { indentedSyntax: true } }
298
+ : { sassOptions: { indentedSyntax: true } },
299
+ },
300
+ ],
301
+ },
246
302
  // 图片
247
303
  {
248
304
  test: /\.(png|jpe?g|gif|webp|svg)$/i,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quicktvui/web-cli",
3
- "version": "1.0.0-beta.41",
3
+ "version": "1.0.0-beta.43",
4
4
  "description": "CLI tool for QuickTVUI web development - zero configuration",
5
5
  "author": "QuickTVUI Team",
6
6
  "license": "Apache-2.0",
@@ -58,4 +58,4 @@
58
58
  "engines": {
59
59
  "node": ">=16.0.0"
60
60
  }
61
- }
61
+ }