我正在尝试<style>
使用 Webpack 对 VueJS 单文件组件的标签中的 SCSS 样式进行 lint。我试图在我的 Webpack 构建的 vue-loader 任务中将webpack 加载器scsslint-loader称为 preLoader。
单文件 vue.js 组件....
<template lang="pug">
...
</template>
<script>
...
</script>
<style lang='scss'>
@import '/scss/core/colors';
.email {
color: $primary_color;
width: 320px;
}
</style>
在 Webpack(2.5) 中,vue-loader 配置看起来像......
module: {
rules: [
{ test: /\.vue$/,
loader: 'vue-loader',
options: {
preLoaders: {
'scss': 'scsslint-loader',
'sass': 'scsslint-loader'
},
loaders: {
'scss': 'vue-style-loader!css-loader!sass-loader',
'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax'
},
}
}
]
},
运行 Webpack 的结果...
undefined:1
No such file or directory @ rb_sysopen - ;
^
SyntaxError: Unexpected token N in JSON at position 0
at JSON.parse (<anonymous>)
at linterResults (C:\wamp\www\spreadless\node_modules\scsslint-loader\dist\scsslint-loader.js:20:28)
at C:\wamp\www\spreadless\node_modules\scsslint-loader\dist\scsslint-loader.js:57:13
at ChildProcess.exithandler (child_process.js:277:5)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:897:16)
at Socket.stream.socket.on (internal/child_process.js:340:11)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at Pipe._handle.close [as _onclose] (net.js:549:12)
问题是...
- 我是否在 Webpack 配置中正确地将 scsslint-loader 作为 vue-loader{preLoader} 调用?
- 如果是这样,对导致无文件错误的原因有任何想法