标签: css-loader

如何从当前webpack配置的sass-loader获取有效的css?

我即将为我的公司创建一个模式库.我使用以下软件:

  • css-loader@0.23.1
  • extract-text-webpack-plugin@1.0.1
  • node-sass@3.8.0
  • sass-loader@4.0.0
  • style-loader@0.13.1
  • webpack@1.13.2
  • resolve-url-loader@1.6.0
  • node@6.3.1
  • npm@3.10.3

在我的电脑上(Windows 10).

我的目标是使用该@import "colors"语句并获取相应的文件../patterns/globals/_colors.css.我创建了一个存储库,以简化代码向您展示我的情况:https://github.com/jbrieske/webpack-sass-fail.我尝试includePaths使用属性配置sass-loader和resolve-url-loader root.但到目前为止两者都没有...

在我的第一次运行(提交:14622da5e6eb77ec51644601b94942c3b51eb76a)与sass-loader和includePaths我得到以下错误报告:

Hash: 396f0bfb9d565b6f60f0
Version: webpack 1.13.2
Time: 522ms
    + 1 hidden modules

ERROR in ./styles.scss
Module build failed: ModuleNotFoundError: Module not found: Error: Cannot resolve 'file' or 'directory' ./colors in ~/projects/webpack-sass-fail/app
    at ~/projects/webpack-sass-fail/app/node_modules/webpack/lib/Compilation.js:229:38
    at onDoneResolving (~/projects/webpack-sass-fail/app/node_modules/webpack/lib/NormalModuleFactory.js:29:20)
    at ~/projects/webpack-sass-fail/app/node_modules/webpack/lib/NormalModuleFactory.js:85:20
    at ~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:726:13
    at ~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:52:16
    at done (~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:241:17)
    at ~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:44:16
    at ~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:723:17
    at ~/projects/webpack-sass-fail/app/node_modules/async/lib/async.js:167:37
    at ~/projects/webpack-sass-fail/app/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:24:19
    at …
Run Code Online (Sandbox Code Playgroud)

sass webpack sass-loader css-loader

3
推荐指数
1
解决办法
3803
查看次数

如何在webpack配置文件中设置css名称不为hash?

我只是想知道为什么我的 css 名称在我构建并运行我的 react + webpack 应用程序后变成了哈希。是否有我可能错过的高级配置以正常设置 css 名称?

这是我的 webpack 配置:

var webpack = require('webpack');
var path = require('path');

module.exports = {
    entry: './app/app.jsx',
    output: {
        path: __dirname,
        filename: './public/bundle.js'
    },
    resolve: {
        alias: {
            applicationStyles: path.resolve(__dirname,'app/styles/app.css'),
            Clock: path.resolve(__dirname,'app/components/Clock.jsx'),
            Countdown: path.resolve(__dirname,'app/components/Countdown.jsx'),
            CountdownForm: path.resolve(__dirname,'app/components/CountdownForm.jsx')
        },
        extensions: ['.js', '.jsx']
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                loader: 'babel-loader',
                exclude: /node_modules/
            },
            {
                test: /\.css$/,
                use: [
                    { loader: 'style-loader' },
                    {
                        loader: 'css-loader',
                        options: {
                            modules: true
                        } …
Run Code Online (Sandbox Code Playgroud)

hash reactjs webpack webpack-style-loader css-loader

3
推荐指数
2
解决办法
8096
查看次数

在反应中使用导入的css文件的css样式上的无效属性值

我正在尝试设置React组件的样式。为此,我导入一个css文件并使用className,如ReactJs文档中所示。

我已经在我的webpack.config.js文件中添加了一个css-loader + style-loader,如下所述:

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  mode: "development",
  entry: "../src/index.js",
  output: {
    path: path.resolve(__dirname, "../dist"),
    filename: "bundle.js",
  },
  devtool: 'inline-source-map',
  devServer: {
    contentBase: '../dist',
    port: 8080
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react']
          }
        }
      },
      {
        test: /\.css$/,
        use: [ 'style-loader', 'css-loader' ]
      }
    ]
  },
  plugins: [new HtmlWebpackPlugin(
    {template: '../src/index.html'}
  )]
}
Run Code Online (Sandbox Code Playgroud)

这是我的App.js React组件:

import …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs webpack webpack-style-loader css-loader

3
推荐指数
1
解决办法
1208
查看次数

未定义的 css 模块类名

我有以下组件,导入的 css 和 webpack 配置 - 显然我已经导入了相关的 css 模块,但是我的 react 输出className={css__main.container}和导入的 css-loader之间的连接似乎不是由 react 建立的 - css_main.container 没有映射to .main__container___2MJY(它返回undefined,因此 react/webpack 不包含在输出中)-我敢肯定,我是 css 模块的新手,我刚刚错过了一个步骤,有人能指出它可能是什么吗?("css-loader": "^0.28.11"安装在 package.json 中)。

import React from 'react';
import {Route, browserHistory, Switch, Link, BrowserRouter, HashRouter} from 'react-router-dom';
import css__main from "../css/main.css";

import NoMatch from "./no-match.js";
import ButtonLink from "../components/buttonLink.js";
import List from "./lists/list-base.js";
import Home from "./subs/home.js";


class Main extends React.Component {
  render(){
    console.log( JSON.stringify( css__main ));
    //[["./src/css/main.css",".main__container___2MJY_{border:1px solid #d0d0d0;-moz-box-shadow:0 0 8px …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack css-loader

3
推荐指数
1
解决办法
5530
查看次数

webpack 样式加载器和 css 加载器不适用于简单示例

我试图按照这里的教程https://webpack.js.org/guides/asset-management/ 但是我永远无法加载 css 文件。(文字从不红色)

https://github.com/bryandellinger/webpackassetmanagement

> --dist
> ----bundle.js
> ----index.html
> --src
> ----index.js
> ----style.css
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

const path = require('path');
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
       module: {
         rules: [
           {
             test: /\.css$/,
             use: [
               'style-loader',
               'css-loader'
             ]
           }
         ]
       }
    };
Run Code Online (Sandbox Code Playgroud)

包.json

{
  "name": "webpack1",
  "version": "1.0.0",
  "description": "webpack tutorial",
  "private": true,
  "scripts": {
    "dev": "lite-server",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^1.0.0",
    "style-loader": "^0.22.1", …
Run Code Online (Sandbox Code Playgroud)

javascript webpack webpack-style-loader css-loader

3
推荐指数
1
解决办法
8115
查看次数

Webpack@4.0.0:"模块解析失败.您可能需要一个合适的加载器来处理此文件类型" - 尽管使用了css-loader和style-loader

下面是我的webpack.config.js和package.json

module.exports = {
  entry: "./entry.js",
  output: {
     filename: "./build/js/bundle.js"
  },
  module: {
    rules: [
      {
        test: /.\js$/,
        use: [
          {
            loader: 'babel-loader',
        options: {
          presets: ["es2015"]
        }
      }
    ]
  },
  {
    test: /.\css?$/,
    include: __dirname + "./src/css",
    exclude: __dirname + "./src/js",
    use: [
        'style-loader',
        {
          loader: 'css-loader',
          options: {
            modules: true
          }
        }
      ]
  }
]
  },
  plugins: [
     // new UglifyJsPlugin()
  ]
}


"dependencies": {
    "ajv-keywords": "^3.1.0",
    "ajv": "^6.0.0",
    "axios": "^0.17.1",
    "babel-minify-webpack-plugin": "^0.3.0",
    "extract-text-webpack-plugin": "^3.0.2",
    "install": "^0.10.4",
    "npm": …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-style-loader css-loader

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

在没有 React 的情况下使用 css-loader

我正在使用支持 Webpack 的 CSS 模块(通过 css-loader)构建一个小型 Web 应用程序,但不使用React。我的目标是通过使用 css-loader 上的选项,在 HTML 中获得简短、模糊的 CSS 类名(因为我目前使用冗长的 BEM 类名)的好处localIdentName: '[hash:base64:8]'。由于我没有使用 React,所以我正在使用原始 HTML,该 HTML 不是通过JSX 文件或document.write.

我之前在 React 中使用过很多次 css-loader ,它最终是有效的,因为你可以在 React 文件中导入样式类名,并使用人类可读的名称来引用它们,无论类名发生什么变化通过Webpack。

但是,我很困惑在使用原始 HTML 时如何处理这个问题;我不能只导入样式,因为它不是 JS 文件。如果我的 HTML 中有一个名为引用的类photo__caption--large,并且 webpack 将类名转换为d87sj,则 CSS 文件会显示为d87sj,但 HTML 仍会显示为photo__caption--large

是否有某种 HTML 文件加载器能够将文件中的类名编辑为其 Webpackified 等效项?或者我真的应该只使用 React 和 CSS 模块吗?

css bundling-and-minification webpack css-modules css-loader

2
推荐指数
1
解决办法
1512
查看次数

如何在 Next Js 上使用 Sass 和 Css

我一直在尝试在 next.config.js 中使用 sass 和 css 模块,但不断遇到此错误:

Failed to compile.

./node_modules/@riskalyze/react-ui/node_modules/@riskalyze/calendar/assets/index.css
Unknown word (1:1)

> 1 | var api = require("!../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js");
    | ^
  2 |             var content = require("!!../../../../../../css-loader/index.js!./index.css");
  3 | 
  4 |             content = content.__esModule ? content.default : content;
Run Code Online (Sandbox Code Playgroud)

在 github 和 stackoverflow 上阅读之后,这听起来像是因为我的 next.config.js 中有两个 css 模块配置实例,但我不确定如何将其减少到一个,同时仍然保持此逻辑不变:

      config.module.rules.push({
        test: /\.css$/,
        use: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
      });
Run Code Online (Sandbox Code Playgroud)

下面是我完整的 next.config.js

const path = require('path');
const withSass = require('@zeit/next-sass');
const withCSS = require('@zeit/next-css');

const aliasPathsToResolve = [ …
Run Code Online (Sandbox Code Playgroud)

css sass css-loader next.js

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

如何使用 Webpack 5 有选择地将 SVG 内联到 CSS 中?

我正在使用 Webpack 5 将 SCSS 编译为 CSS。我想有选择地内联一些 SVG。理想情况下,我想通过文件名、路径或其 URL 中的某些查询参数来实现此目的。

假设我有以下 SCSS:

/* src/scss/main.scss */
.logo {
    background-image: url('/images/logo.svg');
}
Run Code Online (Sandbox Code Playgroud)

和这个webpack.config.js

const path = require('path');

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

const src_dir = path.resolve(__dirname, "src");

module.exports = {
    entry: {
        "styles": path.resolve(__dirname, "src/scss/main.scss")
    },
    output: {
        clean: true,
        path: path.resolve(__dirname, "dist"),
        publicPath: "",
    },
    module: {
        rules: [ ... ]
    },
    plugins: [
        // Extract the generated CSS from the JS-CSS into actual CSS.
        new MiniCssExtractPlugin({
            filename: "[name].[contenthash].css"
        }), …
Run Code Online (Sandbox Code Playgroud)

webpack sass-loader css-loader webpack-5

2
推荐指数
1
解决办法
5740
查看次数

Webpack:使用 css-loader 和 file-loader 正确解析 CSS 中的 url

我有一个 webpack 项目,我需要在 css 中通过url(). 在其他地方,我想导入图像并在我的 JS 代码中使用它们,所以我使用file-loader. 我的webpack.config规则如下(请注意,我不使用 SASS):

module.exports = {
  optimization: {
    splitChunks: {
      chunks: 'all'
    }
  },
  module: {
    rules: [
      {
        test: /\.(m|c)?jsx?$/i,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"],
          },
        },
      },
      {
        test: /\.css$/i,
        use: [
          'style-loader',
          {
            loader: 'css-loader',
          },
        ]
      },
      {
        test: /\.(png|jpe?g|gif)$/i,
        use: {
          loader: 'file-loader',
          options: {
            esModule: false
          }
        }
      },
      {
        test: /\.svg$/i,
        use: {
          loader: 'file-loader', …
Run Code Online (Sandbox Code Playgroud)

webpack css-loader webpack-file-loader

2
推荐指数
1
解决办法
1970
查看次数