如何在 Nuxt 中设置 SASS/SCSS/sass-loader

2024-02-08

我有一个 Nuxt 应用程序,我想使用 CSS 预处理器。
我安装了sass-loader纤维依赖性,但安装后,应用程序控制台中会出现一条消息,我在图像和代码中显示了该消息

这是代码错误:

 WARN  [email protected] /cdn-cgi/l/email-protection is installed but ^4.46.0 is expected                                                                                                                                                                     17:22:44


 WARN  [email protected] /cdn-cgi/l/email-protection is installed but ^10.1.1 is expected

     


Rule can only have one resource source (provided resource and test + include + exclude) in {                                                                                                                           17:22:46
  "use": [
    {
      "loader": "/home/sergey/all_project/pro_projects_all_language/empty/node_modules/babel-loader/lib/index.js",
      "options": {
        "configFile": false,
        "babelrc": false,
        "cacheDirectory": true,
        "envName": "server",
        "presets": [
          [
            "/home/sergey/all_project/pro_projects_all_language/empty/node_modules/@nuxt/babel-preset-app/src/index.js",
            {
              "corejs": {
                "version": 3
              }
            }
          ]
        ]
      },
      "ident": "clonedRuleSet-29[0].rules[0].use[0]"
    }
  ]
}

  "use": [
  {
  "loader": "node_modules/babel-loader/lib/index.js",
  "options": {
  "configFile": false,
  "babelrc": false,
  "cacheDirectory": true,
  "envName": "server",
  "presets": [
  [
  "node_modules/@nuxt/babel-preset-app/src/index.js",
  {
  "corejs": {
  "version": 3
  }
  }
  ]
  ]
  },
  "ident": "clonedRuleSet-29[0].rules[0].use[0]"
  }
  ]
  }
  at checkResourceSource (node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:167:11)
  at Function.normalizeRule (node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:198:4)
  at node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:110:20
  at Array.map (<anonymous>)
  at Function.normalizeRules (node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:109:17)
  at new RuleSet (node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:104:24)
  at new NormalModuleFactory (node_modules/@nuxt/webpack/node_modules/webpack/lib/NormalModuleFactory.js:115:18)
  at Compiler.createNormalModuleFactory (node_modules/@nuxt/webpack/node_modules/webpack/lib/Compiler.js:636:31)
  at Compiler.newCompilationParams (node_modules/@nuxt/webpack/node_modules/webpack/lib/Compiler.js:653:30)
  at Compiler.compile (node_modules/@nuxt/webpack/node_modules/webpack/lib/Compiler.js:661:23)
  at node_modules/@nuxt/webpack/node_modules/webpack/lib/Watching.js:77:18
  at AsyncSeriesHook.eval [as callAsync] (eval at create (node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:24:1)
  at AsyncSeriesHook.lazyCompileHook (node_modules/tapable/lib/Hook.js:154:20)
  at Watching._go (node_modules/@nuxt/webpack/node_modules/webpack/lib/Watching.js:41:32)
  at node_modules/@nuxt/webpack/node_modules/webpack/lib/Watching.js:33:9
  at Compiler.readRecords (node_modules/@nuxt/webpack/node_modules/webpack/lib/Compiler.js:529:11)

我尝试重新安装依赖项,重新安装完全干净的 Nuxt 应用程序,但问题仍然存在。


要在 Nuxt 中安装 SASS,您必须运行yarn add -D sass [email protected] /cdn-cgi/l/email-protection (or npm i -D [email protected] /cdn-cgi/l/email-protection --save-exact && npm i -D sass).

的版本sass-loader需要准确并最迟设置10.x.x因为下一个(11.0.0)正在使用 Webpack5,因此这是一个重大更改,因为 Nuxt2 仅在 Webpack4 上运行,如下所示:https://github.com/webpack-contrib/sass-loader/releases https://github.com/webpack-contrib/sass-loader/releases

IF那么,你仍然无法使用<style lang="sass">在你的.vue组件,然后继续。


将其添加到您的nuxt.config.js file

export default {
  build: {
    loaders: {
      sass: {
        implementation: require('sass'),
      },
      scss: {
        implementation: require('sass'),
      },
    },
  }
}

这里有一个工作回购 https://github.com/kissu/so-nuxt-working-sass-scss以及最新推荐的sass (达特萨斯 https://github.com/sass/dart-sass)设置可以正常使用这种代码

<template>
  <div>
    <span class="test">
      Hello there
    </span>
  </div>
</template>

<style lang="sass" scoped>
div
  .test
    color: red
</style>

PS:如果正确安装了 SASS,那么 SCSS 也能正常工作,因为它基本上是相同的东西。


如果您对某些已弃用的内容有一些警告,例如/ for divison或此处列出的任何内容:https://sass-lang.com/documentation/writing-changes https://sass-lang.com/documentation/breaking-changes
您可以参考这个答案进行修复:https://stackoverflow.com/a/68648204/8816585 https://stackoverflow.com/a/68648204/8816585

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Nuxt 中设置 SASS/SCSS/sass-loader 的相关文章

随机推荐