同一个scss文件被多个在pages.json中声明的文件引入时不会写入到wxss中
- Dominant language
- JavaScript
- Stars
- 41.6k
- Forks
- 3.7k
- Avg merge
- 7h 6m
- Merged PRs (30d)
- 6
Description
**问题描述**
如果一个scss文件被多个vue文件同时通过`import './style.scss'`的方式引入,在构建后生成的wxss文件中无法找到`style.scss`中的内容。但是通过`@import url("./style.scss")`没问题
**复现步骤**
[复现问题的步骤]
1. 初始化
```bash
npx degit dcloudio/uni-preset-vue#vite-ts uniapp-vue3-ts
cd uniapp-vue-ts
pnpm i
```
2. 创建scss文件和index2.vue
```bash
cd src/pages/index
touch style.scss
echo ".test { color: crimson; }" >> style.scss
cp index.vue index2.vue
```
3. 在index.vue和index2.vue引入scss文件
```vue
import './style.scss'
```
4. 执行构建
```bash
pnpm dev:mp-weixin
```
**预期结果**
index.wxss中写入style.scss中的样式
**实际结果**
通过import引入的两个文件中的wxss中都没有对应的样式
**系统信息:**
- 发行平台: [微信小程序]
- 操作系统 [-]
- HBuilderX版本 [-]
- uni-app版本 [3.0.0-3081220230817001]
- 设备信息 [-]
**补充信息**
https://github.com/dcloudio/uni-app/blob/v3.0.0-3081220230817001/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts#L282-L283
目前只能定位到这里,当多个入口文件同时引用同一个样式文件`style.scss`时,生成的chunk里缺少这个样式文件,导致后面设置`cssChunks`时缺少这个文件,最终的表现就是`genCssCode`的结果里没有对应的样式内容。
-------------------------------
老项目从`3.0.0-alpha-3061120221205002`升级后出现小程序端样式丢失,检查过发现是多个文件同时引入了同一个样式文件,而生成后的wxss中并没有样式文件的内容。
由于是老项目,无法通过换用`@import`的方式解决,改造成本太大了。
Contributor guide
Assessment
This issue has not been assessed yet.