vue-loader 是 webpack 中用來解析 .vue 的工具
了解 ".vue" 裡面如何使用 scss;PostCSS 怎麼配合工作?
// 流程
.vue scss > webpack - sass loader > css > webpack - postcss loader > css #
在 webpack 中,所有的预处理器需要匹配对应的 loader。
vue-loader 允许你使用其它 webpack loader 处理 Vue 组件 (.vue) 的某一部分。
.vue 根據內部的標籤的 lang 属性自动推断出要使用的 loader (e.g. <style lang="sass">)。
使用配置文件
因為 vue-loader 支持透過 postcss-loader 自动加载同一个配置文件(.postcssrc or postcss.config.js or package.json 中的 postcss 屬性範圍)。
postcss-loader 會用 cosmiconfig 的方式尋找這個 configuration object(配置文件)
這樣,你可以在由 postcss-loader 处理的「普通 CSS 文件」和 「*.vue 文件中的 CSS」 之间共享相同的配置,这是推荐的做法。
配合 postcss-loader 使用
因为 vue-loader 内部通过 PostCSS 处理其样式,你只需要对标准的 CSS 文件应用 postcss-loader 即可。
即專案中有 PostCSS 配置文件,就不用在 <style> 指定 lang="postcss"。
如果没有 loader (通过 vue-loader 自身的 loaders 选项) 显式配置下列 PostCSS 扩展,
则它们只会简单的进行 vue-loader 的默认 PostCSS 转换: postcss、pcss、sugarss、sss。
inline OPtion
或者,你可以使用 vue-loader 的 postcss options 来为 .vue 文件指定配置。
// webpack.config.js
module.exports = {
// other options...
module: {
// `module.rules` is the same as `module.loaders` in 1.x
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
// `vue-loader` options goes here
options: {
// ...
postcss: [require('postcss-cssnext')()]
}
}
]
}
}
PostCSS 需要一個 configuration object 配置檔物件做運行的依據, 通常會用 cosmiconfig 方式尋找。
vue-loader 有三種方法使用 PostCSS:
vue-loader 内部通过 PostCSS 处理其样式,
lang="postcss"。vue-loader 配合 postcss-loader 使用,因此只需要对标准的 CSS 文件应用 postcss-loader 即可。
.vue 預設透過 postcss-loader 輸出 CSS(即不用特別寫 lang="postcss")。
只需要對外部 css 檔案应用 postcss-loader 即可。
PostCSS 需要一份配置文件(configuration object), postcss-loader 會用 cosmiconfig 方式尋找。
或者,你可以使用 vue-loader 的 postcss 选项来为 .vue 文件指定配置。
用 vue-loader 的 option 来指定配置。
解释 (interpret) @import 和 url() ,会 import / require() 后再解析 (resolve) 它们。
基於 CSS 縮進,給 PostCSS 的語法糖: https://github.com/postcss/sugarss,如果要寫,就要設定解析方式為 sugarss
前端自動化工具,目前用到:
了解 ".vue" 裡面如何使用 scss;PostCSS 怎麼配合工作?
vue-loader 可以使用 webpack 的 loader 處理 Vue 组件的某一部分。 它会根据 lang 属性自动推断出要使用的 loader。
e.g. 要用 sass 編譯 <style> ,寫 <style lang="sass"> 就可以編譯 sass。
但 vue-loader 預設使用 PostCSS 處理樣式(不需要特別寫 <style lang="postcss"> )
使用 PostCSS 和 lint 一樣,會先用 cosmiconfig 來找他所依據的 configuration object 配置檔物件。
文件建議用配置文件來搭配 postcss-loader,這樣「普通 CSS 文件」和 「*.vue 中的 CSS」之間,可共享相同的配置。