uni-app stylus 全局注入在nvue中失效
uni-app stylus 全局注入在nvue中失效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win10
HBuilderX类型:Alpha
HBuilderX版本号:3.1.21
手机系统:Android
手机系统版本号:Android 11
手机厂商:小米
手机机型:小米
页面类型:nvue
打包方式:云端
操作步骤:
const path = require('path')
module.exports = {
chainWebpack: config => {},
css: {
loaderOptions: {
stylus: {
import: [require('path').resolve(__dirname, "./uni.styl")],
},
}
}
}
- 使用stylus 全局注入样式无效
$text-font-size = 32px
<template>
<text class="text1">仪表盘</text>
</template>
<style lang="stylus">
.text1
font-size $text-font-size
</style>
- 独立的stylus样式表 函数 无法使用条件编译
theme()
// #ifndef APP-NVUE
color #007AFF
// #endif
<template>
<text class="text1">仪表盘</text>
</template>
<style lang="stylus">
@import './index'
.text1
font-size $text-font-size
theme()
</style>
预期结果:
- 页面里的字体为外面注入的样式表里的值
- 独立的stylus样式表可以使用条件编译
实际结果:
不起作用
bug描述:
- 使用stylus 全局注入样式无效
- 独立的stylus样式表 函数 无法使用条件编译
更多关于uni-app stylus 全局注入在nvue中失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app stylus 全局注入在nvue中失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 nvue 页面中,由于渲染机制差异,部分样式注入和条件编译功能存在限制。
针对全局 stylus 变量注入失效问题,nvue 页面的样式编译与 vue 页面不同,webpack 的 stylus loader 配置可能无法生效。建议改用 CSS 变量方案:
/* 在 App.vue 中定义 */
:root {
--text-font-size: 32rpx;
}
<style scoped>
.text1 {
font-size: var(--text-font-size);
}
</style>
关于 stylus 函数中的条件编译失效,这是因为条件编译指令需要在 webpack 编译阶段处理,而 stylus 函数内部的注释会被视为 stylus 语法而非预处理指令。建议将条件编译移至样式外层:
// #ifndef APP-NVUE
theme-color = #007AFF
// #endif
theme()
color theme-color
或者直接使用平台差异化样式文件:
[@import](/user/import) './index.' + $platform + '.styl'

