javascript - 使用 webpack+react构建前端项目,babel编译 jsx失败,请问为什么
PHPz
PHPz 2017-04-11 13:28:12
[JavaScript讨论组]

webpack.config.js

var path = require('path');
var node_modules = path.resolve(__dirname, 'node_modules');
var pathToReact = path.resolve(node_modules, 'react/dist/react.min.js');

var config = {
  entry: ['webpack/hot/dev-server', path.resolve(__dirname, './app/main.js')],
  resolve: {
    alias: {
      'react': pathToReact
    }
  },
  output: {
    path: path.resolve(__dirname, './build'),
    filename: 'bundle.js'
  },
  module: {
    noParse: [pathToReact],
    loaders: [{
      test: /\.jsx?$/,
      loader: 'babel'
    }, {
      test: /\.css$/,
      loader: 'style!css'
    }, {
      test: /\.less$/,
      loader: 'style!css!less'
    },{ 
      test: /\.(png|jpg)$/, 
      loader: 'url?limit=25000' 
    }]
  }
};

module.exports = config;

package.json

{
  "name": "react",
  "version": "2.0.0",
  "dec": "this is a biz rep",
  "main": "app/main.js",
  "devDependencies": {
    "babel-cli": "^6.16.0",
    "babel-loader": "^6.2.5",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-react": "^6.16.0",
    "css-loader": "^0.25.0",
    "file-loader": "^0.9.0",
    "less": "^2.7.1",
    "less-loader": "^2.2.3",
    "react": "^0.14.8",
    "react-dom": "^0.14.8",
    "react-hot-loader": "^3.0.0-beta.6",
    "react-router": "^2.4.1",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.2"
  },
  "dependencies": {
    "jsx-loader": "^0.13.2"
  },
  "pre-commit": [],
  "scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build"
  }
}

jsx 代码

import React from 'react';
import ReactDOM from 'react-dom';
var AppComponent = React.createClass({
  render: function(){
    return (
Most Popular JavaScript
); } }); ReactDOM.render(, document.getElementById('content'));

报错信息图:

请大神帮忙看看,好纠结,就是个搞不好它,~~(>_<)~~

PHPz
PHPz

学习是最好的投资!

全部回复(5)
伊谢尔伦

jsx的loader需要加参数才能识别jsx语法,如下

loaders: [{
      test: /\.jsx?$/,
      loader: 'babel?presets[]=es2015&presets[]=react'
    }]
怪我咯

<main>这个是什么标签?

黄舟

你的main.js是什么 是不是应该改成main.jsx

大家讲道理

把main改成p

迷茫

react不支持自定义标签,你的main不属于dom,所以react会报错

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号