首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >./app/main.js模块构建失败: SyntaxError:意外令牌(10:18)中的错误

./app/main.js模块构建失败: SyntaxError:意外令牌(10:18)中的错误
EN

Stack Overflow用户
提问于 2017-01-12 12:22:12
回答 2查看 1.3K关注 0票数 1

当我使用“webpack”时,下面的错误.

./app/main.js模块构建失败: SyntaxError:意外令牌(10:18)中的错误

代码语言:javascript
运行
复制
   8 | 
   9 | function main(){
> 10 |   ReactDOM.render(<Hello />, document.getElementById('app'));
     |                   ^
  11 | }
  12 | main();
  13 | 

component.jsx

代码语言:javascript
运行
复制
<div><i>   import React from 'react';
     export default class Hello extends React.Component {
       render() {
       return (<h1>Hello World---component.jsx</h1>)
      }
  }</i></div>

main.js

代码语言:javascript
运行
复制
 import React from 'react';
  import ReactDOM from 'react-dom';
  import Hello from './component.jsx';

   function main(){
    ReactDOM.render(<Hello />, document.getElementById('app'));
  }
  main();

package.json

代码语言:javascript
运行
复制
{
  "name": "enviromentproject",
  "version": "1.0.0",
  "description": "一个用来做环境搭建的项目测试",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build"
  },
  "author": "jkwu",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.21.0",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-preset-es2015": "^6.18.0",
    "babel-runtime": "^6.20.0",
    "css-loader": "^0.26.1",
    "style-loader": "^0.13.1",
    "vue-hot-reload-api": "^2.0.7",
    "vue-html-loader": "^1.2.3",
    "vue-style-loader": "^1.0.0",
    "webpack": "^1.14.0"
  },
  "dependencies": {
    "hexo-deployer-git": "^0.2.0",
    "react": "^15.4.2",
    "react-dom": "^15.4.2",
    "webpack-dev-server": "^1.16.2"
  }
}
EN

回答 2

Stack Overflow用户

发布于 2017-01-12 13:01:05

首先,您的component.jsx不应该在html标记中

简单写入

代码语言:javascript
运行
复制
import React from 'react';
     export default class Hello extends React.Component {
       render() {
       return (<h1>Hello World---component.jsx</h1>)
      }
  }

其次,更重要的是,确保在webpack配置中指定babel作为jsx的加载程序。

代码语言:javascript
运行
复制
module : {
    loaders : [
      {
        test : /\.jsx?/,
        exclude : /node_modules/,
        loader : 'babel'
      }
    ]
  }

而且,它不会引起问题,但不需要在函数中调用ReactDOM.render()

代码语言:javascript
运行
复制
class Hello extends React.Component {
       render() {
       return (<h1>Hello World---component.jsx</h1>)
      }
  }

    ReactDOM.render(<Hello />, document.getElementById('app'));
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>
<div id="app"></div>
票数 1
EN

Stack Overflow用户

发布于 2017-01-25 10:17:51

加入“babel-预设反应”

在您的webpack.config.js中安装babel-预设-react,并在babel-加载程序中添加“预设”选项。

(也可以将其添加到您的.babelrc或package.js:http://babeljs.io/docs/usage/babelrc/中)

下面是一个示例webpack.config.js:

代码语言:javascript
运行
复制
{ 
    test: /\.jsx?$/,         // Match both .js and .jsx files
    exclude: /node_modules/, 
    loader: "babel", 
    query:
    {
        presets:['react']
    }
}

然后: npm安装react-在main.js导入时从“react”保存{ render };

使用此渲染

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41613135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档