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

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,41 @@ function detectCSSLoader() {
96
96
  return 'style-loader'
97
97
  }
98
98
 
99
+ /**
100
+ * 检测全局 Sass 变量文件
101
+ */
102
+ function detectSassAdditionalData() {
103
+ // 常见的全局变量文件路径
104
+ const possiblePaths = [
105
+ 'src/styles/variables.scss',
106
+ 'src/styles/variables.sass',
107
+ 'src/styles/_variables.scss',
108
+ 'src/styles/_variables.sass',
109
+ 'src/assets/styles/variables.scss',
110
+ 'src/assets/styles/variables.sass',
111
+ 'src/assets/scss/variables.scss',
112
+ 'src/assets/scss/variables.sass',
113
+ 'src/assets/scss/_variables.scss',
114
+ 'src/assets/scss/_variables.sass',
115
+ 'src/scss/variables.scss',
116
+ 'src/scss/variables.sass',
117
+ 'src/scss/_variables.scss',
118
+ 'src/scss/_variables.sass',
119
+ 'src/css/variables.scss',
120
+ 'src/css/variables.sass',
121
+ ]
122
+
123
+ for (const relativePath of possiblePaths) {
124
+ const fullPath = path.join(projectRoot, relativePath)
125
+ if (fs.existsSync(fullPath)) {
126
+ return `@import "${relativePath}";\n`
127
+ }
128
+ }
129
+ return ''
130
+ }
131
+
99
132
  const cssLoader = detectCSSLoader()
133
+ const sassAdditionalData = detectSassAdditionalData()
100
134
 
101
135
  // 获取 web-cli 目录下的 loader 路径
102
136
  const cliDir = path.resolve(__dirname, '..')
@@ -240,9 +274,29 @@ module.exports = {
240
274
  { test: /\.css$/, use: [cssLoader] },
241
275
  // Less
242
276
  { test: /\.less$/, use: [cssLoader, 'less-loader'] },
243
- // Sass/SCSS
244
- { test: /\.scss$/, use: [cssLoader, 'sass-loader'] },
245
- { test: /\.sass$/, use: [cssLoader, 'sass-loader'] },
277
+ // Sass/SCSS - 自动注入全局变量文件
278
+ {
279
+ test: /\.scss$/,
280
+ use: [
281
+ cssLoader,
282
+ {
283
+ loader: 'sass-loader',
284
+ options: sassAdditionalData ? { additionalData: sassAdditionalData } : {},
285
+ },
286
+ ],
287
+ },
288
+ {
289
+ test: /\.sass$/,
290
+ use: [
291
+ cssLoader,
292
+ {
293
+ loader: 'sass-loader',
294
+ options: sassAdditionalData
295
+ ? { additionalData: sassAdditionalData, sassOptions: { indentedSyntax: true } }
296
+ : { sassOptions: { indentedSyntax: true } },
297
+ },
298
+ ],
299
+ },
246
300
  // 图片
247
301
  {
248
302
  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.42",
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
+ }