Vue 单文件组件和来自带有 Webpack 的 PostCSS 的 SugarSS
Vue single file component and SugarSS from PostCSS with Webpack
我正在尝试在 Vue 单文件组件和 Webpack 2 中使用 SugarSS,但到目前为止还没有成功。这是我的组件文件:
<template lang="pug">
h1 hello!
</template>
<script>
export default {
data: () => {
return {message: "hello!"}
}
}
</script>
<style scoped lang="postcss">
h1
color: green
display: flex
</style>
这是我的 webpack.config.js:
module.exports = {
entry: "./browser.js",
output: {
filename: "static/bundle.js"
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
query: {
presets: ["latest"]
}
},
{
test: /\.vue$/,
loader: "vue-loader",
options: {
postcss: {
options: {
parser: require("sugarss")
}
}
}
}
]
}
}
我也有 postcss.config.js 以防万一,在同一目录中:
module.exports = {
plugins: [
require("sugarss")
]
}
我尝试使用 <style scoped lang="sugarss">
,但也不走运。这是 运行ning webpack:
时的错误代码
TypeError: Invalid PostCSS Plugin found. Please check your PostCSS Config
at /home/piotr/herd/js/node_modules/postcss-load-plugins/lib/plugins.js:46:17
at Array.forEach (native)
at plugins (/home/piotr/herd/js/node_modules/postcss-load-plugins/lib/plugins.js:23:15)
at /home/piotr/herd/js/node_modules/postcss-load-config/index.js:67:18
Hash: 2b260e6f43cbdf7bfbc1
Version: webpack 1.14.0
Time: 1429ms
Asset Size Chunks Chunk Names
static/bundle.js 179 kB 0 [emitted] main
+ 9 hidden modules
ERROR in ./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-067de399&scoped=true!./~/postcss-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./userlist.vue
Module build failed: Missed semicolon (15:10)
13 |
14 | h1
> 15 | color: green
| ^
16 | display: flex
17 |
@ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-067de399&scoped=true!./~/postcss-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./userlist.vue 4:14-256
为了验证一切都已安装,我创建了一个简单的 test.sss 文件,其样式与组件中的样式相同(颜色:绿色和显示:flex)和来自 cli 的 运行 postcss,像这样:node_modules/.bin/postcss -p sugarss test.sss
- 它完美地工作并且输出按预期处理 CSS。
就 vue-loader 配置而言,我使用了页面底部的建议,此处:https://vue-loader.vuejs.org/en/features/postcss.html
还有一件事,当我将样式标签切换为 SASS 时,它运行良好并且 webpack 编译组件没有问题。
我是不是在 webpack 配置文件中遗漏了什么?
你的postcss.config.js
不正确,sugarss不是插件,它是解析器。 postcss.config.js
应改为:
module.exports = {
parser: "sugarss"
}
如果这不起作用,请告诉我。
我正在尝试在 Vue 单文件组件和 Webpack 2 中使用 SugarSS,但到目前为止还没有成功。这是我的组件文件:
<template lang="pug">
h1 hello!
</template>
<script>
export default {
data: () => {
return {message: "hello!"}
}
}
</script>
<style scoped lang="postcss">
h1
color: green
display: flex
</style>
这是我的 webpack.config.js:
module.exports = {
entry: "./browser.js",
output: {
filename: "static/bundle.js"
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
query: {
presets: ["latest"]
}
},
{
test: /\.vue$/,
loader: "vue-loader",
options: {
postcss: {
options: {
parser: require("sugarss")
}
}
}
}
]
}
}
我也有 postcss.config.js 以防万一,在同一目录中:
module.exports = {
plugins: [
require("sugarss")
]
}
我尝试使用 <style scoped lang="sugarss">
,但也不走运。这是 运行ning webpack:
TypeError: Invalid PostCSS Plugin found. Please check your PostCSS Config
at /home/piotr/herd/js/node_modules/postcss-load-plugins/lib/plugins.js:46:17
at Array.forEach (native)
at plugins (/home/piotr/herd/js/node_modules/postcss-load-plugins/lib/plugins.js:23:15)
at /home/piotr/herd/js/node_modules/postcss-load-config/index.js:67:18
Hash: 2b260e6f43cbdf7bfbc1
Version: webpack 1.14.0
Time: 1429ms
Asset Size Chunks Chunk Names
static/bundle.js 179 kB 0 [emitted] main
+ 9 hidden modules
ERROR in ./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-067de399&scoped=true!./~/postcss-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./userlist.vue
Module build failed: Missed semicolon (15:10)
13 |
14 | h1
> 15 | color: green
| ^
16 | display: flex
17 |
@ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-067de399&scoped=true!./~/postcss-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./userlist.vue 4:14-256
为了验证一切都已安装,我创建了一个简单的 test.sss 文件,其样式与组件中的样式相同(颜色:绿色和显示:flex)和来自 cli 的 运行 postcss,像这样:node_modules/.bin/postcss -p sugarss test.sss
- 它完美地工作并且输出按预期处理 CSS。
就 vue-loader 配置而言,我使用了页面底部的建议,此处:https://vue-loader.vuejs.org/en/features/postcss.html
还有一件事,当我将样式标签切换为 SASS 时,它运行良好并且 webpack 编译组件没有问题。
我是不是在 webpack 配置文件中遗漏了什么?
你的postcss.config.js
不正确,sugarss不是插件,它是解析器。 postcss.config.js
应改为:
module.exports = {
parser: "sugarss"
}
如果这不起作用,请告诉我。