taro icon indicating copy to clipboard operation
taro copied to clipboard

taro页面和原生混合时,开启less、sass配置,原生页面组件less、sass不生效,报错找不到wxss文件

Open reoszo opened this issue 2 years ago • 0 comments

相关平台

微信小程序

复现仓库

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处):

  1. getPages方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L560
  2. compileFile方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L707
  3. getSubPackages方法 https://github.com/NervJS/taro/blob/7f4bea88b008aa0a3155739bc6785e1753be8c7a/packages/taro-mini-runner/src/plugins/MiniPlugin.ts#L757
  4. 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) }

reoszo avatar Jul 06 '22 12:07 reoszo