标签: webpack-style-loader

webpack 可以在不复制所需文件的情况下捆绑 css/scss/less 吗?

假设我有以下 2 个组件,直接需要相同的实用程序 css 文件。

组件一:

import component1Css from '/path/to/component1.scss'
import someOtherUtilityCss from './path/to/some-other-css.scss'
...
export default Component1;
Run Code Online (Sandbox Code Playgroud)

组件二:

import component2Css from './path/to/component2.scss'
import someOtherUtilityCss from './path/to/some-other-css.scss'
...
export default Component2;
Run Code Online (Sandbox Code Playgroud)

然后我将它们包含在我的应用程序中:

主应用程序:

import someLayoutCss from './path/to/some-layout.css';
import Component1 from './path/to/component1'
import Component2 from './path/to/component2'

...

export default App;
Run Code Online (Sandbox Code Playgroud)

我希望捆绑系统知道只导入some-other-css.scss一次。

style-loader + css-loader 是否已经开箱即用?

此外,

如何处理内部 css 导入?

如果我通过 import 语句在 javascript 中导入了 cssFile1 和 cssFile2:

import cssFile1 from 'path/to/file1.scss'
import cssFile2 from 'path/to/file2.scss'
Run Code Online (Sandbox Code Playgroud)

而且cssFile1和cssFile2内部都导入了cssFile3,cssFile3的内容会出现在file1.css和file2.css中吗?或者 sass-loader 会解决这个问题并且只包含 cssFile3 …

css webpack webpack-style-loader

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

Webpack 不编译 sass 文件

我正在尝试编译我的所有.scss文件,但 webpack 似乎没有这样做,即使我已经style-loader & sass-loader在我的 webpack 配置文件中声明。

我不明白为什么.scss文件不能编译?我遵循了以下博客的指南:http : //www.jonathan-petitcolas.com/2015/05/15/howto-setup-webpack-on-es6-react-application-with-sass.html

装载机:

loaders: [
            // Working loaders...
            {test: /\.json$/, loaders: ["json"]},
            {test: /\.(ico|gif|png|jpg|jpeg|svg|webp)$/, loaders: ["file?context=static&name=/[path][name].[ext]"], exclude: /node_modules/},
            {test: /\.js$/, loaders: ["babel?presets[]=es2015&presets[]=stage-0&presets[]=react"], exclude: /node_modules/},
            
            // Non working loaders...
            // ALSO TRIED THIS -> { test: /\.scss$/,loader: ExtractTextPlugin.extract( "style", 'css!sass')}
            { test: /\.css$/, loader: ExtractTextPlugin.extract(
                "style-loader",
                "sass-loader?sourceMap",
                {
                    publicPath: "../dist"
                }
            )},

],
Run Code Online (Sandbox Code Playgroud)

style.css永远不会在任何地方生成。

插件:

plugins: [
    new ExtractTextPlugin("style.css", {
       disable: false,
       allChunks: true
    }), …
Run Code Online (Sandbox Code Playgroud)

css webpack webpack-style-loader

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

CSS 模块的 Webpack blob 名称

我已经使用 CSS 模块设置了 webpack 2,并且可以正常工作。但是,当我通过浏览器调试器调试CSS时,所有路径都是这样的:“blob:http://localhost:3000/2b5f9ab7-7972-4c8a-bdbd-96cd9e74b6f9

这使我无法识别 CSS 模块。有什么方法可以让 webpack 写出模块名称吗?

提前致谢!

webpack webpack-dev-server webpack-style-loader

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

webpack、less-loader 和 vuejs 无法识别的输入

我正在尝试将自定义 SemanticUI 构建集成到 webpack vue.js 模板中。我没有遇到 jquery 和 SemanticUI 模块集成的问题,但是我没有让 less 文件工作。

我创建与应用程序vue-cliwebpack模板,我安装less-loaderstyle-loader通过npm相应。

在添加 SemanticUI less 文件之前,我想看看我的构建管道是否正常工作,所以我创建了以下文件夹结构和测试文件:

构建/webpack.base.conf.js

resolve: {
  // ...
  alias: {
    // ...
    'semantic-ui': path.resolve(__dirname, '../semantic-ui')
  }
  // ...
}
// ...
module: {
  // ...
  loaders: {
    test: /\.less$/,
    loader: "style-loader!css-loader!less-loader"
  }
  // ...
}
Run Code Online (Sandbox Code Playgroud)

语义ui/semantic.less

& { @import 'test.less'; }
Run Code Online (Sandbox Code Playgroud)

语义用户界面/test.less

@variable: 2px;
Run Code Online (Sandbox Code Playgroud)

源代码/main.js

// ...
require('semantic-ui/semantic.less')
// ...
Run Code Online (Sandbox Code Playgroud)

但是当我运行时,我总是以以下错误告终 npm run dev

ERROR in …
Run Code Online (Sandbox Code Playgroud)

javascript less node.js webpack webpack-style-loader

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

我们如何使用 webpack 有条件地加载供应商 css?

例如,如果我们有一个以以下内容命名的供应商scss 文件vendor.scss

$color: green;

h1 {
  background-color: $color;
}
Run Code Online (Sandbox Code Playgroud)

我们如何编写规则来实现以下结果?(或类似)

let vendor = true; // this will be configured outside

if (vendor) {
  let style = require('style-loader/useable!css-loader!./vendor.scss');
  style.use(); //loads just if I call `use`, otherwise not
}

require('my-other-file.scss'); // loads normally, without `use`.
Run Code Online (Sandbox Code Playgroud)

因为vendor.scss是供应商 scss/css 我们不能或不应将其重命名为,例如,vendor.useable.scss. 并且出于维护目的,我们不希望创建一个my-vendor-wrapper.scss可以将其包裹在@import内部的新工具。

在 webpack 中,现在,我有这个规则:

const ExtractTextPlugin = require('extract-text-webpack-plugin')

module.exports = {
  // test: /\.(scss|sass|css)$/i,
  test: /^(?!.*style-loader\/useable!).*\.(sass|scss|css)$/i,
  use: ExtractTextPlugin.extract({
    fallback: 'style-loader',
    use: ['css-loader', …
Run Code Online (Sandbox Code Playgroud)

javascript css sass webpack webpack-style-loader

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

尝试使用 webpack 和 babel 加载 css 时出现意外令牌

我正在使用 Express 构建一个 React 应用程序,我尝试添加一个样式加载器/css 加载器以启用导入 css,但是当我启动我的服务器时,我收到以下错误:

M:\MainFiles\MyStuff\Code\react\FlexBoardToolBox>npm run start:dev

> flex_board@1.0.0 start:dev M:\MainFiles\MyStuff\Code\react\FlexBoardToolBox
> cross-env NODE_ENV=development && npm run build:dev && nodemon --exec babel-node -- src/server/server.js


> flex_board@1.0.0 build:dev M:\MainFiles\MyStuff\Code\react\FlexBoardToolBox
> webpack -d

Hash: 1b4953ee761d210e2488
Version: webpack 2.2.1
Time: 2567ms
    Asset     Size  Chunks                    Chunk Names
bundle.js  2.54 MB       0  [emitted]  [big]  js
   [6] ./~/react/react.js 55 bytes {0} [built]
  [23] ./~/react/lib/React.js 2.71 kB {0} [built]
  [24] ./~/react-router-dom/es/index.js 2.21 kB {0} [built]
  [89] ./~/react-router-dom/es/Link.js 4.67 kB {0} [built]
  [94] ./~/react-dom/index.js 58 …
Run Code Online (Sandbox Code Playgroud)

express reactjs webpack webpack-style-loader css-loader

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

为什么 webpack scss 不想包含字体?

我有一个简单的 scss 文件

$fa-font-path: "~font-awesome/fonts";
$bootstrap-sass-asset-helper: false !default;
$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
$icon-font-name: "glyphicons-halflings-regular" !default;
$icon-font-svg-id: "glyphicons_halflingsregular" !default;
@import "~bootstrap-sass/assets/stylesheets/bootstrap";
@import '~font-awesome/scss/font-awesome';

*, *:before, *:after {
  box-sizing: border-box;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  background-color: $bg;
  margin-bottom: 60px;
}
Run Code Online (Sandbox Code Playgroud)

我的 webpack 加载器看起来像这样:

  {
    test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
    use: {
      loader: 'url-loader',
      options: {
        limit: 10000,
        mimetype: 'application/font-woff'
      }
    }
  },
  {
    test: /\.(ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
    use: 'file-loader'
  },
  {
    test: /\.scss$/,
    include: [
      path.resolve(process.cwd(), "src/client/assets/styles"),
    ],
    use: ExtractTextPlugin.extract({
      fallback: "style-loader",
      use: [ …
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap webpack webpack-style-loader

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

当我更新“@angular-devkit/build-angular”时,style-loader 停止工作

我在 angular8 工作并面临一个问题,

为了动态加载我的样式,我使用了波纹管代码并且它运行良好,但是当我将包更新"@angular-deficit/build-angular": "^0. 800.0"为 时"@angular-deficit/build-angular": "^0. 803.21",它停止工作。该应用程序运行良好,终端和浏览器控制台中没有错误,但应用程序上未实现样式。

declare function require(name: string): any;
 ngOnInit() {
    require('style-loader!./file-path');
}
Run Code Online (Sandbox Code Playgroud)

包.json

{
"name": "latest-frontend-theme",
"version": "0.0.0",
"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "bundle-report": "webpack-bundle-analyzer dist/stats.json"
},
"private": true,
"dependencies": {
    "@agm/core": "^1.1.0",
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^8.2.3",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/material": "^8.2.3",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "@ngx-loading-bar/core": "^4.2.0",
    "@ngx-loading-bar/router": …
Run Code Online (Sandbox Code Playgroud)

javascript webpack-style-loader angular angular6 angular8

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

如何在使用 webpack 构建期间将 css-in-js(样式化组件)移动到外部 css 文件 - ReactJS

我试图找出构建 React 项目时 CSS 文件所在的位置。我正在使用 webpack,如果我使用普通 CSS,我可以为整个项目中使用的所有样式创建一个 CSS 文件。当我使用样式组件在 js 中使用 CSS 时,我没有得到外部 CSS 文件。

webpack.config.js

var path    = require('path');
var hwp     = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');


module.exports = {
    entry: path.join(__dirname, '/src/index.js'),
    output: {
        filename: 'index.js',
        path: path.join(__dirname, './dist'),
        publicPath : '/'
    },
    module:{
        rules:[{
            exclude: /node_modules/,
            test: /\.js$/,
            loader: 'babel-loader'
    },
    {
        test: /\.css$/i,
        use: [
            {
            loader : MiniCssExtractPlugin.loader,
            options : {
                publicPath: '/public/path/to/',
            },
        }, 
        'css-loader'
    ]
      }
    ]
    },
    devServer: {
        historyApiFallback: true,
      }, …
Run Code Online (Sandbox Code Playgroud)

build reactjs webpack webpack-style-loader styled-components

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

类型错误:this.getOptions 不是样式加载器的函数

问题

在使用 Storybook 时,我正在运行npm run storybook并收到以下错误。

ModuleBuildError: Module build failed (from ./node_modules/style-loader/dist/cjs.js):
TypeError: this.getOptions is not a function
Run Code Online (Sandbox Code Playgroud)

背景/上下文

我的目标是让 Storybook 能够使用sass.

设置很简单:我有scss由组件文件导入的文件。

在寻找实现此目的的方法时,我遇到了一个可以这样做的插件,请参阅. 本质上,您可以运行npm i --save-dev @storybook/preset-scss style-loader css-loader sass-loader.

这样做时,我遇到了第一个错误。这是同样的错误,但对于sass-loader. 这个Stack Overflow 线程帮助我修复了这个错误。

所以,我想总而言之,我已经尝试过:

  • 跟随文档(上面链接)
  • 跟随堆栈溢出线程(上面链接)

相关的开发依赖

"@storybook/preset-scss": "^1.0.3",
"css-loader": "^6.2.0",
"sass-loader": "^10.1.1",
"style-loader": "^3.2.1"
Run Code Online (Sandbox Code Playgroud)

提前致谢!

reactjs webpack webpack-style-loader storybook

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