标签: sass-loader

使用 Webpack 将选择器全局添加到我的所有 CSS 选择器(在构建时)

我想将一个特定的选择器全局附加到我的应用程序中使用的所有 CSS 选择器。

我正在使用 React 和那些 Webpack 加载器post-csscss-loadersass-loaderextract-text-webpack-plugin

我不想编辑 jsx 文件中的所有类名。我只想在构建时附加这个特定的选择器。

有没有一个加载器可以实现这一点?或者任何其他解决方案...

我实际拥有的:

.myClass {
  ...

  &--blue { ... }
}
Run Code Online (Sandbox Code Playgroud)

Webpack 转译后我想要的:

.specificClass .myClass { ... }
.specificClass .myClass--blue { ... }
Run Code Online (Sandbox Code Playgroud)

谢谢

戈蒂埃

PS:我需要此功能的原因是为了避免 CSS 选择器与我正在集成应用程序的网站发生冲突。我不想手动编辑所有 scss 文件来附加选择器。

sass css-selectors webpack sass-loader css-loader

5
推荐指数
1
解决办法
570
查看次数

如何将变量传递给webpack上的scss文件

我想在 webpack.config.js 上定义全局变量或 env 并将变量传递给 .js 或 .scss 文件

我定义“__basedir”是绝对路径

      new webpack.DefinePlugin({
          __basedir: "'" + __dirname + "'",

      }),
Run Code Online (Sandbox Code Playgroud)
  {
        loader: 'sass-loader',
        options: {
            data: "$basedir: '" + __dirname + "';"
        }
    }
Run Code Online (Sandbox Code Playgroud)

在js文件上已经可以工作了

require(__basedir + '/public/js/Sortable.min.js');

但在 scss 文件上它不起作用

@import“$__basedir/public/css/include-media/dist/_include-media.scss”;

怎么修。谢谢

sass node.js webpack sass-loader

5
推荐指数
0
解决办法
753
查看次数

背景图像 URL 未使用 Webpack 加载

基本上我试图在容器的背景中显示图像,但它没有加载。我尝试了各种路径,因为我并不完全清楚 URL 需要相对于什么: the package.json、 the webpack.config.js、 React 组件或login.scss我正在使用的。

\n\n

除了以下内容之外,我还将提供目录结构webpack.config.js

\n\n
/app\n    /src\n        /assets\n            /img\n                slide_blue.png\n            /scss\n                login.scss\n        /config\n            webpack.config.js\n        /react\n            /containers\n                /authentication\n                    signin.js\n            index.js // entry point\n    package.json\n
Run Code Online (Sandbox Code Playgroud)\n\n

login.scss到目前为止,它很短,其他样式也有效:

\n\n
// logic.scss\n@import \'declarations\';\n\n.login {\n    height: 381px;\n    // tried just about every combination of path... this is just the last one I tried\n    background-image: url(\'/src/assets/img/slide_blue.png\') !important;\n\n    form {\n        padding-top: 75px;\n        padding-bottom: -75px;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

最后是webpack.config.js

\n\n
var path = …
Run Code Online (Sandbox Code Playgroud)

css reactjs webpack webpack-style-loader sass-loader

5
推荐指数
1
解决办法
1万
查看次数

为什么 Webpack 的 sass-loader 在生产模式下最小化 CSS?

.css我正在为和文件设置 Webpack 加载器配置.scss,我注意到在使用时--mode production我将最小化的 CSS 作为最终输出,甚至没有显式使用最小化器,这是我的加载器配置:

{
  // Match .css or .scss
  test: /\.s?css$/,
  use: [
    isProd
    // In production extract the CSS into separate files
    ? {
      loader: MiniCssExtractPlugin.loader,
      options: {
        hmr: !isProd
      }
    }
    // In development inject the styles into the DOM
    : 'style-loader',
    {
      loader: 'css-loader'
    },
    {
      loader: 'sass-loader',
      options: {
        sourceMap: false
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用sass-loaderwithnode-sassmini-css-extract-plugin将CSS提取到单独的文件中,这建议使用optimize-css-assets-webpack-plugin通过覆盖来最小化CSS optimization.minimizer,但我已经在不安装此插件的情况下获得了最小化输出。

为了找出导致此行为的原因,我尝试处理有或没有 CSS …

css webpack sass-loader

5
推荐指数
2
解决办法
2142
查看次数

Webpack 中 watch 编译时加速 scss 的方法

太长了;滚动到底部寻找答案,或者将 Webpack 和 Dart Sass VM 结合起来。 https://github.com/sass/dart-sass/releases/

不确定其他人是否遇到过这个问题,但我在观看文件时的第一次保存可能需要 6-7 秒(6720 毫秒)。

然后它通常会下降 2-3.5 秒。

我正在使用 Webpack 5,最新版本sass-loadersass. 我还Fibers按照 Webpacks 的建议添加了内容,但我确实没有看到任何改进。

我的 JS 编译时间不到一秒。

我也尝试过两者memoryfilesystem在 Webpack 缓存中进行设置。我也尝试过cache-loader

我当前的 SCSS 规则如下所示:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const Fiber = require('fibers');
const Sass = require('sass');
const config = require('../app.config');

module.exports = {
    rules: [{
        test: /\.s[ac]ss$/,
        exclude: /node_modules/,
        include: config.paths.sass,
        use: [
            MiniCssExtractPlugin.loader,
            {
                loader: 'css-loader',
                options: …
Run Code Online (Sandbox Code Playgroud)

sass webpack sass-loader

5
推荐指数
1
解决办法
5129
查看次数

nuxt vuetify 给出 SassError:预期标识符

我正在使用 Nuxt 2.15.4 和 nuxt/vuetify 1.11.3

我的项目工作正常,但是当我在构建时将其移至新服务器时,出现以下错误:

在此输入图像描述

这是我的 package.json 文件

{
  "name": "myproject",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate"
  },
  "dependencies": {
    "@nuxtjs/auth": "^4.9.1",
    "@nuxtjs/axios": "^5.13.1",
    "@nuxtjs/device": "^2.1.0",
    "@nuxtjs/google-gtag": "^1.0.4",
    "@nuxtjs/gtm": "^2.4.0",
    "chart.js": "^2.9.3",
    "cookie-universal-nuxt": "^2.1.4",
    "core-js": "^3.9.1",
    "jquery": "^3.5.1",
    "nuxt": "^2.15.3",
    "swiper": "^5.4.5",
    "v-viewer": "^1.5.1",
    "vee-validate": "^3.3.7",
    "vue-awesome-swiper": "^4.1.1",
    "vue-chartjs": "^3.5.0",
    "vue-cropperjs": "^4.1.0",
    "vue-easy-dnd": "^1.10.2",
    "vue-glide-js": "^1.3.14",
    "vue-persian-datetime-picker": "^2.2.0",
    "vue-product-zoomer": "^3.0.1",
    "vue-slick-carousel": "^1.0.6",
    "vue-sweetalert2": "^4.2.1",
    "vue2-editor": "^2.10.2",
    "vuedraggable": …
Run Code Online (Sandbox Code Playgroud)

vue.js sass-loader vuejs2 nuxt.js vuetify.js

5
推荐指数
1
解决办法
5133
查看次数

SASS @Use 和 webpack 别名...找不到样式表

当我使用 Webpack 别名时,我遇到了 @use 规则的问题。

\n

在部分 theme.scss 中,我尝试使用 style.scss 中的 mixin。

\n
/src/assets/css/_theme.scss\n/components/UI/Button/_style.scss\n/components/UI/Button/main.tsx\n/components/UI/Radio/_style.scss\n/components/UI/Radio/main.tsx\n
Run Code Online (Sandbox Code Playgroud)\n

这适用于相对路径:

\n
@use '../../components/UI/Button/style' as button;\n
Run Code Online (Sandbox Code Playgroud)\n

但不能使用如下别名:

\n
@use 'Components/UI/Button';\n@use 'Components/UI/Button/style';\n
Run Code Online (Sandbox Code Playgroud)\n

在第二种情况下,我收到此错误:

\n
SassError: SassError: Can't find stylesheet to import.\n1 \xe2\x94\x82 @use 'Components/UI/Button';\n
Run Code Online (Sandbox Code Playgroud)\n

别名已在 tsconfig.json 中声明

\n
"baseUrl": "./",\n"paths": { "Components/*": ["src/components/*/main"] }\n
Run Code Online (Sandbox Code Playgroud)\n

并在我的 Webpack 配置中使用 TsconfigPathsPlugin :

\n
resolve: {\n    ...\n    plugins: [new TsconfigPathsPlugin()],\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我在 sass-loader 中没有找到任何用于特定解析的选项。如何在 saas-loader 中使用别名?

\n

webpack sass-loader

5
推荐指数
0
解决办法
234
查看次数

webpack sass-loader 不使用 tsconfig 路径

Sass-loader 似乎不使用打字稿配置中声明的路径(别名)。因此,简单的 @use 或 @import 会给出未找到的错误。

\n

网页包

\n
resolve: {\n    plugins: [new TsconfigPathsPlugin()],\n
Run Code Online (Sandbox Code Playgroud)\n

tsconfig

\n
"paths": {\n    "Components/*": ["src/components/*"],\n
Run Code Online (Sandbox Code Playgroud)\n

结果

\n
SassError: SassError: Can't find stylesheet to import.\n1 \xe2\x94\x82 @use 'Components/UI/Grid';\n
Run Code Online (Sandbox Code Playgroud)\n

是否可以在 sass-loader 中导入 tsconfig 路径?

\n

typescript tsconfig webpack sass-loader

5
推荐指数
1
解决办法
444
查看次数

@use in sass - 无法从node_modules解析css路径

我已经在我的项目中安装了 Modern-normalize,并且从 sass 文件中我尝试包含它的 css 文件,如下所示:

\n
@use '~modern-normalize/modern-normalize' as *;\n
Run Code Online (Sandbox Code Playgroud)\n

然而我不断收到这个消息:

\n
\n

错误:找不到要导入的样式表。\xe2\x95\xb7 9 \xe2\x94\x82 @use\n'~modern-normalize/modern-normalize' as *; \xe2\x94\x82\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^

\n
\n

即使在我的 IDE (vscode) 中,我可以 CMD+单击它,它会很好地导航并打开文件,我在我的 node_modules 目录中看到

\n

我是否缺少一些与配置相关的东西?

\n

css sass sass-loader normalize-css angular

5
推荐指数
1
解决办法
2972
查看次数

如何将 loadPath 与 sass-loader 和 webpack 一起使用?

我正在创建一个与webpack. 我正在sass项目中使用,所有scss文件都位于scss根目录中。我在名为 的目录中创建了一些部分内容partials。目录结构如下所示:

\n

测验应用程序的目录结构

\n

在文件的顶部quiz.module.scss,我有这个:

\n
@use "colors" as *;\n@use "font";\n
Run Code Online (Sandbox Code Playgroud)\n

我不想写@use "partials/colors"and @use "partials/font",所以我决定将其包含在所使用的scss/partials列表中。我的某个地方有这个loadPathsscsswebpack.dev.js

\n
const PATHS_TO_SASS_PARTIALS = ["scss/partials"]\n
Run Code Online (Sandbox Code Playgroud)\n

这在其他地方:

\n
{\n  test: /\\.module\\.scss$/,\n  use: [\n    {\n      loader: "style-loader"\n    },\n    {\n      loader: "css-loader",\n      options: {\n        modules: {\n          mode: "local"\n        }\n      }\n    },\n    {\n      loader: "resolve-url-loader"\n    },\n    {\n      loader: "sass-loader",\n      options: {\n        sourceMap: true,\n        sassOptions: …
Run Code Online (Sandbox Code Playgroud)

sass webpack webpack-dev-server sass-loader dart-sass

5
推荐指数
0
解决办法
339
查看次数