首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每个样式表配置中自动导入sass分区

在每个样式表配置中自动导入sass分区
EN

Stack Overflow用户
提问于 2019-09-04 08:04:03
回答 2查看 2K关注 0票数 5

最近,我开始使用CSS模块使用NextJS。为了消除重复,我想在每个样式表中自动导入带有混音、变量等的部分。

通过使用GatsbyJS,我发现了如何在我的项目中的每个样式表中自动导入一些特定的SASS部分。设置如下:

代码语言:javascript
复制
{
  resolve: `gatsby-plugin-sass`,
  options: {
  data: '@import "_reset.scss", "_typography.scss", "_mixins.scss", "_extends.scss", "_themes.scss";',
  includePaths: [
    'src/styles/partials',
    ],
  },
},

现在我的next.settings.js看起来是这样的:

代码语言:javascript
复制
const path = require("path");
const withSass = require("@zeit/next-sass");

const partials = [
  "_reset.scss",
  "_variables.scss",
  "_themes.scss",
  "_typography.scss",
  "_mixins.scss",
  "_extends.scss",
];

module.exports = withSass({

  cssModules: true,

  webpack: config => {
    config.resolve.alias["components"] = path.join(__dirname, "components");
    return config;
  },

});

如果可能的话,我如何在每个样式表中自动解锁部分呢?

解决问题的办法,感谢@eric-tan回复:

所有的部分都是在一个"_utilty.scss“部分中导入的,该部分包含在sassLoaderOptions:->数据中:导入部分本身;-> includePaths:导入的部分位于何处。

代码语言:javascript
复制
const path = require("path");
const withSass = require("@zeit/next-sass");

module.exports = withSass({

  cssModules: true,
  sassLoaderOptions: {
    data: '@import "_utility.scss";',
    includePaths: [
      path.resolve(__dirname, "styles/"),
    ]
  },

  webpack: config => {
    config.resolve.alias["components"] = path.join(__dirname, "components");
    return config;
  },

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-04 08:29:54

我们可以像这样使用sass加载程序:

代码语言:javascript
复制
  {
     // Loads a SASS/SCSS file and include the partial files before compilation
     loader: 'sass-loader',
       options: {
         data:
           '@import "foo-partial";\n ' +
           '@import "bar-partial";',
           includePaths: [
             path.resolve(__dirname, '../src/assets/styles')
           ]
        }
  }

nextSass提供sass装载机选项,您可以尝试将它们合并到您的设置中。

票数 4
EN

Stack Overflow用户

发布于 2021-02-18 18:30:41

在较新版本的sass-加载程序中,由于不再支持数据选项,上述方法停止工作。而不是:

代码语言:javascript
复制
options: {
  data: `@import "${__dirname}/sass/variables";`,
}

使用:

代码语言:javascript
复制
options: {
  additionalData: `@import "${__dirname}/sass/variables";`,
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57784020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档