-
Notifications
You must be signed in to change notification settings - Fork 920
Closed
Description
昨天花了好长时间在 <script> 中 import 进来的独立css文件不被 postcss 处理
的问题上。
经过多方测试和检验,发现这种情形 vue-loader 似乎是不处理的,issue 中的大多评论建议大家修改 webpack 配置,为 css 文件添加 postcss-loader ,单独配置处理。而 vue-cli 中的 webpack 模板,css配置是封装过的,对新手不友好。
进而发现自己对vue-loader 加载 postcss 处理 css 样式的流程没搞清楚。经摸索,大概是这样的:
## vue-loader 的 postcss 处理
<script> 中 import 进来的css文件不被 vue-loader 处理。
因此想要vue-loader处理独立的css文件,可以用 <style src="filename.css"> 的方式引入。
vue-loader 默认的 postcss 配置文件路径为:
webpack内联选项(build/vue-loader.conf.js) > postcss.config.js > .postcssrc.js
弄明白之后再看 https://github.com/vuejs/vue-loader/blob/master/docs/zh-cn/features/postcss.md 文件,发现其实已经提到了怎么配置,但文档却默认用户知道vue-loader处理css的流程,也知道如何修改 vue-cli webpack 模板封装后的 build/utils.js 文件中 cssloader 的配置。
原文:
由vue-loader 处理的 CSS 输出,都是通过 PostCSS 进行作用域重写,你还可以为 PostCSS 添加自定义插件,例如 autoprefixer 或者 CSSNext。
困惑:
由vue-loader处理的css输出
,哪些 css输出是由 vue-loader 处理的?不被 vue-loader 处理的css输出有哪些,可以怎么处理,容易引起哪些问题?都是通过 PostCSS 进行作用域重写
,是内置的 postcss,还是需要另行加载 postcss-loader?可以为 PostCSS 添加自定义插件
,在哪个配置文件里添加?vue-loader 从 11.0 版本开始支持通过 postcss-loader 自动加载同一个配置文件
这句话不通,会引起歧义。同一个配置文件
,谁和谁的同一个配置文件?vue-loader 通过 postcss-loader 加载,是内部调用的,还是需要增加额外的 postcss-loader ?是否可以改为:
vue-loader 从 11.0 版本开始支持通过配置文件来配置,采用了和 postcss-loader 相同的方案,加载的是相同的配置文件:
建议:
- 明确 vue-loader 处理哪些文件中的 css 样式。
- 明确 vue-loader 调用 postcss 处理 css 样式时,默认的配置文件路径是什么。(配置文件及路径在文档中有,可我看了多遍还是忽略了,以为只跟独立的 postcss-loader 有关。)
- 添加对易于出错的
import '*.css' 文件
情况的说明及配置方案。 - 在webpack 中的 css loader 配置文档中,添加官方vue-cli webpack模板的配置方案。
jqs7 and Fiona2016
Metadata
Metadata
Assignees
Labels
No labels