【问题标题】:react keyword extends doesnt pick up反应关键字扩展不接
【发布时间】:2019-06-22 01:29:30
【问题描述】:

我已经尝试学习 webpack 有一段时间了,它似乎没有图像或 css 的问题...只是反应,我收到以下错误消息。它不认识它... 我已经尝试阅读和修复它很长一段时间了,所以如果我不是新手,任何帮助都将不胜感激。

在我的反应页面中

const img = require('./dog.jpeg');
require('./style.css');
import React from 'react';
import ReactDOM from 'react-dom';

class Page extends React.Component () {
  render(){
    return(
      <div>
        <p>A silly complicated way to show an HTML document</p>
      </div>
    );
  }
}

在我的 webpack.common.js 文件中

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

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

  },
  plugins : [
    new CleanWebpackPlugin(['../dist']),
    new HtmlWebpackPlugin({
      title: 'Web w react, express webpack dev n prod',

    })
  ],
  output : {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, '../dist')
  },
  module : {
    rules:[
      // {
      //     test: /\.js$/,
      //     loader: 'babel-loader',
      //     exclude: /node_modules/,
      //     query: {presets: ['es2015']}
      //   },
        {
        test: /\.(jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/react']
          }
        }
      },
        // {
        //   test: /\.jsx$/,
        //   loader:'babel-loader',
        //   query: {presets: ['es2015', 'react']}
        // },
      {
        test:/\.(css|scss)$/,
        use:['style-loader', 'css-loader','sass-loader']
      },
      {
        test: /\.(png|jpeg|jpg|gif)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192,
              fallback: 'file-loader'
            }
          }
        ]
}
    ]
  }
}

error message that comes up 所有代码都在这个链接上 Link to this on Github

【问题讨论】:

  • 文件的扩展名是什么?如果是.js,那很可能是问题所在。您的配置仅将 babel 加载器应用于 .jsx 文件。
  • 那是完全正确的,非常感谢,有趣的是,我看了这么久的屏幕后却忽略了一些东西。我在哪里点击给你积分?
  • 当我意识到您从未说过您的文件是否为 js 时,我删除了我的答案。我取消删除它:) 你可以在那里批准它...谢谢!

标签: reactjs webpack webpack-4


【解决方案1】:

查看您的模块加载器规则。唯一可以远程文件加载 js 文件的规则是:

  {
    test: /\.(jsx)$/,
    exclude: /node_modules/,
    use: {
      loader: 'babel-loader',
      options: {
        presets: ['@babel/react']
      }
    }
  },

现在看看test: /\.(jsx)$/。这让 webpack 知道使用对象中定义的给定配置加载哪些文件。您提到的错误文件是.js 文件。如果您希望使用相同的配置加载它,您需要将test 修改为test: /\.(js|jsx)$/,。所以它应该看起来像这样。

  {
    test: /\.(js|jsx)$/,
    exclude: /node_modules/,
    use: {
      loader: 'babel-loader',
      options: {
        presets: ['@babel/react']
      }
    }
  },

我还没有深入研究这个......所以如果能解决你的问题,请 lmk。祝你好运!

【讨论】:

  • 老实说,我的控制台上仍然收到一条错误消息,并且没有加载任何内容依赖项,我重新安装了我部分遵循的示例中的依赖项并将其推送到 git hub ...
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 2010-12-03
  • 2011-07-29
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
相关资源
最近更新 更多