收到错误-“您可能需要适当的加载程序来处理此文件类型,当前没有配置任何加载程序来处理此文件”

问题描述 投票:1回答:1

我是React的初学者,遇到了一些问题。无法在react应用中导入外部CSS文件。并且在导入时,我收到一条错误消息,“您可能需要适当的加载程序来处理此文件类型,当前没有配置任何加载程序来处理此文件”。我在webpack配置中添加了css加载器和样式加载器,但仍然收到此错误。

**Webpack.config.js**

var path = require('path')
var webpack = require('webpack')
var nodeExternals = require('webpack-node-externals')


var browserConfig = {
  entry: './src/browser/index.js',
  output: {
    path: path.resolve(__dirname, 'public'), // create a public folder
    // and inside this we'll create file named bundle.js which contain
    // the whole app contained in one file
    filename: 'bundle.js',
    publicPath: '/'
  },
  module: {
    rules: [
      { test: /\.(js)$/, use: 'babel-loader'}, // whenever webpack found
      // any .js file then it will call babel-loader to convert JSX into
     // vanilla js
      {
       test:/\.css$/,
       use:['style-loader','css-loader']
    }
    ]
  },
  plugins: [
    new webpack.DefinePlugin({
      __isBrowser__: "true" // plugin help to know whether we are in 
      // browser rendered page or server rendered page.
    })
  ]
}

var serverConfig = {
 entry: './src/server/index.js',
 target: 'node',
  externals: [nodeExternals()],
  output: {
    path: __dirname,
    filename: 'server.js',
    publicPath: '/'
  },
  module: {
    rules: [
  { test: /\.(js)$/, use: 'babel-loader' },
  {
    test:/\.css$/,
    use:['style-loader','css-loader']
    }
    ]
  },
  plugins: [
    new webpack.DefinePlugin({
      __isBrowser__: "false"
    })
  ]
}

module.exports = [browserConfig, serverConfig]

package.json

{
  "name": "React-App",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev-server": "nodemon --exec babel-node src/server/server.js --ignore public/",
    "dev-bundle": "webpack -w -d"
  },
     "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@babel/core": "^7.10.2",
    "@babel/node": "^7.10.1",
    "@babel/preset-react": "^7.10.1",
    "babel-loader": "^8.1.0",
    "@babel/preset-env": "^7.9.6",
    "express": "^4.17.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.2.0",
    "webpack": "^4.43.0",
    "webpack-cli": "^3.3.11",
    "webpack-node-externals": "^1.7.2"
  },
  "devDependencies": {
       "babel-eslint": "^10.1.0",
    "cors": "^2.8.5",
    "css-loader": "^3.5.3",
    "eslint": "^7.2.0",
    "eslint-plugin-react": "^7.20.0",
    "eslint-plugin-react-hooks": "^4.0.4",
    "nodemon": "^2.0.4",
    "serialize-javascript": "^3.0.0",
    "style-loader": "^1.2.1"
  }
}

babel.config.js

module.exports = {
presets: ['@babel/preset-env', '@babel/preset-react'],
 };

Home.js

import React from 'react';
import {Link} from 'react-router-dom';
import './../styles/NavBar.css';


 export default function Home () {
     const myStyle = {
        "margin-left":"25%",
        "padding":"1px 16px",
        "height":"1000px"
   };
  return (
    <>
    <ul>
    <li><a class="active" href="#home">Home</a></li>
    <li><a href="#news">News</a></li>
    <li><a href="#contact">Contact</a></li>
    <li><a href="#about">About</a></li>
   </ul>

    <div style={myStyle}>
  <h2>Fixed Full-height Side Nav</h2>

</div>
</>
  )
}

NavBar.css

ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 25%;
background-color: #f1f1f1;
position: fixed;
height: 100%;
overflow: auto;
  }

  li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
  }

  li a.active {
background-color: #4CAF50;
color: white;
  }

  li a:hover:not(.active) {
background-color: #555;
color: white;
  }

错误

C:\React-App\src\styles\NavBar.css:1
ul {
   ^

SyntaxError: Unexpected token '{'
    at wrapSafe (internal/modules/cjs/loader.js:1047:16)
    at Module._compile (internal/modules/cjs/loader.js:1097:27)
    at Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Object.newLoader [as .js] (C:\React-App\node_modules\pirates\lib\index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\React-App\src\shared\/Home.js:3:1)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
css reactjs webpack babeljs css-loader
1个回答
0
投票

您的设置看起来不错,不确定Home.js文件。到现在为止还没有那样使用过。可能是它的新书写方式。

[其他老虎钳尝试将文件更改为Home.jsx,将Webpack更改为

{ test: /\.(js|jsx)$/, use: 'babel-loader' } 
© www.soinside.com 2019 - 2024. All rights reserved.