taro
taro copied to clipboard
taro页面和原生混合时,开启less、sass配置,原生页面组件less、sass不生效,报错找不到wxss文件
相关平台
微信小程序
复现仓库
https://github.com/wuba/Taro-Mortgage-Calculator 小程序基础库: 2.24.4 使用框架: React
复现步骤
更改原生页面或者组件wxss为sass或者less后缀
期望结果
自动识别sass和less文件作为原生的wxss映射
实际结果
报错找不到wxss文件
环境信息
Taro CLI 3.3.16 environment info:
System:
OS: macOS 10.14
Shell: 5.3 - /bin/zsh
Binaries:
Node: 16.15.1 - ~/.nvm/versions/node/v16.15.1/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v16.15.1/bin/yarn
npm: 8.11.0 - ~/.nvm/versions/node/v16.15.1/bin/npm
npmPackages:
@tarojs/cli: 3.3.16 => 3.3.16
@tarojs/components: 3.3.16 => 3.3.16
@tarojs/mini-runner: 3.3.16 => 3.3.16
@tarojs/react: 3.3.16 => 3.3.16
@tarojs/runtime: 3.3.16 => 3.3.16
@tarojs/taro: 3.3.16 => 3.3.16
@tarojs/webpack-runner: 3.3.16 => 3.3.16
babel-preset-taro: 3.3.16 => 3.3.16
eslint-config-taro: 3.3.16 => 3.3.16
react: 16.14.0 => 16.14.0
补充信息
https://github.com/NervJS/taro/blob/next/packages/taro-mini-runner/src/plugins/MiniPlugin.ts文件中 this.pages和this.components构造时候写死了 xxxx.wxss(),应该像resolveMainFilePath方法实现一样(处理js,ts,tsx等脚本入口文件名),处理less,sass,wxss样式入口文件
相关代码段(4处):
- getPages方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L560
- compileFile方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L707
- getSubPackages方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L757
- getTabBarFiles方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L883
/** 处理样式文件后缀 */ getStylePath (filePath: string) { return this.getTargetFilePath(filePath, this.options.fileType.style) }