【问题标题】:Webpack css-loader is not importing CSSWebpack css-loader 没有导入 CSS
【发布时间】:2019-06-26 18:00:01
【问题描述】:

我的服务器通过读取this tutorial 呈现了我的create-react-app

现在,我无法在 .js 文件中导入 CSS 文件!

尝试使用style-loadercss-loaderextract-text-webpack-pluginmini-css-extract-plugin,尝试调整 webpack 配置,但没有任何帮助。

没有 StackOverflow 答案有帮助。所以这个问题。 ????

这是我的package.json

{
  ...
  "scripts": {
    "dev:build-server": "NODE_ENV=development webpack --config webpack.server.js --mode=development -w",
    "dev:start": "nodemon ./server-build/index.js",
    "dev": "npm-run-all --parallel build dev:*",
    "start": "serve --single ./build",
    "client": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "now-build": "react-scripts build && mv build dist",
    "deploy": "npm run build && now ./build -A ../now.json --public --name=kumarabhirup"
  },
  ...
}

这是webpack.server.js

const path = require('path');
const nodeExternals = require('webpack-node-externals');
const webpack = require('webpack')
const ExtractTextPlugin = require('extract-text-webpack-plugin');
// const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  entry: './server/index.js',

  target: 'node',

  externals: [nodeExternals()],

  output: {
    path: path.resolve('server-build'),
    filename: 'index.js'
  },

  module: {
    rules: [
      {
        test: /\.js$/,
        use: 'babel-loader'
      },
      {
        test: /\.css$/,
        // use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader'] NOT WORKED
        use: ExtractTextPlugin.extract('style-loader', 'css-loader') // NOT WORKING
      },
      {
        test: /\.scss$/,
        use: [
            "style-loader",
            "css-loader",
            "sass-loader"
        ]
      }
    ]
  },

  plugins: [
    new webpack.EnvironmentPlugin({...process.env}),
    new ExtractTextPlugin('[name].css') // TRIED THIS TOO
    // new MiniCssExtractPlugin({ TRIED THIS
    //   filename: 'style.css',
    // })
  ]
};

当我 import 'react-circular-progressbar/dist/styles.css' 时它向我抛出错误,

/Users/iqubex/Sites/kumarabhirup/kumarabhirup/node_modules/react-circular-progressbar/dist/styles.css:7
.CircularProgressbar {
^

SyntaxError: Unexpected token .
    at new Script (vm.js:83:7)
    at createScript (vm.js:267:10)
    at Object.runInThisContext (vm.js:319:10)
    at Module._compile (internal/modules/cjs/loader.js:686:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:734:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Module.require (internal/modules/cjs/loader.js:659:17)
    at require (internal/modules/cjs/helpers.js:22:18)
[nodemon] app crashed - waiting for file changes before starting...

我所期望的只是导入的 CSS 文件的工作。请帮忙?????????

【问题讨论】:

  • module: {loaders: [{test: /\.js$/, exclude: /node_modules/, loaders: ['babel']},{test: /\.css$/, loaders: ['style', 'css']}]},你能不能试试这个把webpack中的plugins数组清空。
  • 这也是,不工作☹️
  • 你是否从 dist 目录导入 css?输出未设置为dist 目录,但这安全吗?我的意思是在那个文件夹中没有其他程序可以写吗?你能告诉我你的项目结构吗? (目录)
  • 我创建了另一个项目,它是自定义的,没有 CRA...这次成功了...一定是由于文件结构。无论如何,感谢您的帮助。当我从头开始做所有事情时,您的答案就奏效了。 :-)

标签: javascript node.js reactjs webpack create-react-app


【解决方案1】:

@gopigorantala 是对的。

将加载器更改为其中之一,它应该可以工作:

use: ['style-loader', 'css-loader']

use: [MiniCssExtractPlugin.loader, 'css-loader']

您可能不需要使用 ExtractTextPlugin。只需使用 MiniCssExtractPlugin。它会工作的。

style-loader 在运行时使用<style> 将样式加载到DOM 中,MiniCssExtractPlugin 将它们提取到单独的文件中。所以你不需要同时使用它们。

【讨论】:

猜你喜欢
  • 2017-06-10
  • 2018-07-26
  • 2017-10-27
  • 1970-01-01
  • 2018-07-12
  • 2017-07-21
  • 2016-09-15
  • 2016-04-20
  • 2018-03-04
相关资源
最近更新 更多