parsing - React - 模块解析失败

标签 parsing reactjs module webpack loader

从命令行运行 webpack 时,我一整天都遇到此错误:

ERROR in ./index.js
Module parse failed: /home/kuro/Workspace/ExpressJS/corate/src/index.js Line 10: Unexpected token <
You may need an appropriate loader to handle this file type.
|   render:function(){      
|       return (
|           <div>
|               <div className="left">
|                   <img src={mac}/>

这是我在 index.js 中的代码

var React=require('react');
var ReactDOM=require('react-dom');
var style=require('../public/css/style.css');
var mac=require('../public/images/img_landing_page_mac.png');
var chrome=require('../public/images/btn_get_chrome.png');

var Content=React.createClass({
    render:function(){      
        return (
            <div>
                <div className="left">
                    <img src={mac}/>
                </div>
                <div className="right">
                    <h2 style={font-size: '33px', letter-spacing: '5px'}>
                        Organize <br>Modern Knowledge<br> for Mankind
                    </h2>
                    <p style={font-size: '20px', margin-top: '35px', letter-spacing: '4px'}>
                        Consume, Colect and Revisit <br>Knowledge at Your Fingertips
                    </p>
                    <a href="#" style={margin-top: '80px', display: 'inline-block', margin-left: '-17px'}>
                        <img src={chrome}/>
                    </a>
                </div>
            </div>
        );
    }
});

ReactDOM.render(<Content/>,document.getElementByClassName('container'));

以及webpack.config.js中的配置:

module.exports={
    context: __dirname+'/src',
    entry:'./index.js',
    output:{
        path:__dirname+'/static',
        filename:'bundle.js'
    },
    module:{
        loaders:[
        {
            test:/\.png$/,
            loader:'url?limit=10000'
        },
        {
            test:/\.jpg$/,
            loader:'url?limit=10000'
        },
        {
            test:/\.css$/,
            loader:'style!css'
        }
        ]
    }
}

我无法弄清楚它出了什么问题。我在这里遗漏了什么吗?

最佳答案

您需要添加 babel-loader ,与 react preset ,执行以下步骤

  1. npm i --save-dev babel-loader babel-preset-react babel-preset-es2015
  2. 添加到webpack.config.js babel-loader的配置(至 loaders: [..] 部分)

    {  
       test: /\.jsx?$/,
       exclude: /(node_modules)/,
       loader: 'babel',
       query: {
          presets: ['react', 'es2015']
       }
    }
    

更新: babel-preset-es2015 , babel-preset-react已弃用,转而使用 @babel/env @babel/preset-react

  1. npm i --save-dev babel-loader @babel/core @babel/preset-react @babel/preset-env
  2. 添加到webpack.config.js babel-loader的配置
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /(node_modules)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env', '@babel/preset-react']
        }
      }
    }
  ]

关于parsing - React - 模块解析失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485821/

相关文章:

javascript - Reactjs 在 setState 不起作用后将值作为 Prop 传递

Powershell模块未加载

javascript - 在不停止进程的情况下提前退出加载 Node 模块

android - 解析 XML 的最佳实践

json - 由于其格式而无法正确解析 JSON 数据?

java - 在 Win XP 上使用 BufferedReader 双换行,但在其他操作系统上没有...相同的代码

javascript - 有没有办法用 React native 录制音频并将其存储为 wave 文件?

javascript - 如何通过底部坐标而不是顶部坐标来锚定元素

javascript - 如何使用 "tumblr.js"NodeJS 模块将照片博客发布到 tumblr

javascript - Angular Controller 检查服务 promise 以更新 View