mpvue编译后 样式文件vendor.wxss被引用两次

发布于 2022-09-11 22:03:42 字数 459 浏览 23 评论 0

最近在调试小程序的时候,发现有些元素的样式都有两个同样的

查看编译后的样式文件发现vendor.wxss在app.wxss中被引入一次,然后在每个单独页面的wxss中也引入了一次,所以导致有些样式引入了两次

图片描述

图片描述

图片描述

想请问

1、怎么样才能不让引入两次这个文件,比如只在app.wxss中引入或只在每个页面中引入
2、什么文件的样式会被打包进vendor.wxss?目前观察的是组件中的样式和static文件里的样式文件被打包进这里了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凹づ凸ル 2022-09-18 22:03:42

两种解决方式:
1、如同 @TIS_OMiddle 这位网友说的,全局的样式放在App.vue中,并且不用scoped,这个方法比较简洁。
2、修改webpack插件,有兴趣的可以看下webpack-mpvue-asset-plugins这个插件,在31行加入

if (filePath.includes('app.wxss')) {
  return
}

当然,第一种方法更简单些了

===================== 补充 ====================

方法2的具体做法:

图片描述图片描述

1、在根目录下的build文件夹下新建plugins文件夹,并在node_modules里找到webpack-mpvue-asset-plugins这个文件夹,把里面index.js中的代码完全拷贝出来,并在plugins下新建文件webpack-mpvue-asset-plugins.js(这么做是出于个人喜好)。

2、在webpack-mpvue-asset-plugins.js里修改,大概31行的位置添加代码,如下图:
图片描述

3、修改build文件夹下webpack.base.conf.js,把对webpack-mpvue-asset-plugins的引用改为刚才新增文件的相对路径。

重新编译,搞定!!

图片描述

×纯※雪 2022-09-18 22:03:42

同样的经历。。我是用了scss,想在main.js导入全局样式main.scss,结果发现每个wxss文件都去导入了。
我main.scss目的是使用全局样式,但实际上App.vue这个文件的<style></style>片段,对应编译后的app.wxss,而app.wxss的样式会应用到整个小程序当中,所以我们只要在App.vue中写全局样式,并且别用scoped就行了。只要不在main.js中去全局引入样式,目前还没发现其他问题,表现和想象中一致

把时间冻结 2022-09-18 22:03:42

遇到同样的问题 该怎么解决呢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文