【问题标题】:Add SCSS support to Vue project为 Vue 项目添加 SCSS 支持
【发布时间】:2019-10-08 09:51:15
【问题描述】:

默认情况下,在我的packages.json 文件中,我得到:

"postcss": {
"plugins": {
  "autoprefixer": {}
}}

当我添加 <style lang='scss'> 时,它不像为 Typescript 支持那样编译得像魔术一样。我知道我需要将一些 NPM 包指定为 devDependencies 并在上面的 postcss 部分中指定一些内容以使 scss 进行编译,但我在 webpack 之外找不到任何文档,所以我迷路了。

【问题讨论】:

  • 如果您使用 vue-cli3 创建项目,这是选项之一。当您选择它时,它开箱即用。无需添加配置工作。

标签: css vue.js npm webpack sass


【解决方案1】:

https://vue-loader.vuejs.org/guide/pre-processors.html

例如,用 SASS/SCSS 编译我们的 <style> 标签:

npm install -D sass-loader node-sass

在你的 webpack 配置中:

module.exports = {
  module: {
    rules: [
      // ... other rules omitted

      // this will apply to both plain `.scss` files
      // AND `<style lang="scss">` blocks in `.vue` files
      {
        test: /\.scss$/,
        use: [
          'vue-style-loader',
          'css-loader',
          'sass-loader'
        ]
      }
    ]
  },
  // plugin omitted
}

现在除了可以import 'style.scss'之外,我们还可以使用SCSS 在 Vue 组件中也是如此:

<style lang="scss"> /* write SCSS here */ </style>

块内的任何内容都将被 webpack 处理,就好像它是 在*.scss 文件中。

【讨论】:

  • 也许我很天真,但我希望我可以在没有 webpack 的情况下做到这一点。我想,因为我可以在没有 webpack 的情况下在 Vue 文件中编译 Typescript,所以我可以用 SCSS 做同样的事情。也许我误解了,我的 packages.json TypeScript 配置以某种方式使用了 webpack。
  • 我没有webpack.config,只有vue.config.js;我知道webpack.config.js 是在运行时生成的。如何添加配置?
  • 这个答案会导致构建错误:Error: No loader specified
猜你喜欢
  • 1970-01-01
  • 2020-07-04
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多