GVKun编程网logo

babel-loader jsx SyntaxError:意外令牌(意外令牌什么意思)

9

对于babel-loaderjsxSyntaxError:意外令牌感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍意外令牌什么意思,并为您提供关于babelwatchSyntaxError:意外

对于babel-loader jsx SyntaxError:意外令牌感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍意外令牌什么意思,并为您提供关于babel watch SyntaxError:意外令牌、babel-loader jsx SyntaxError: Unexpected token、babel-loader jsx SyntaxError:意外令牌[重复]、Create-React-App构建-“未捕获的SyntaxError:意外令牌<”的有用信息。

本文目录一览:

babel-loader jsx SyntaxError:意外令牌(意外令牌什么意思)

babel-loader jsx SyntaxError:意外令牌(意外令牌什么意思)

我是React + Webpack的初学者。

我在Hello World Web应用程序中发现一个奇怪的错误。

我在webpack中使用babel-loader来帮助我将jsx转换为js,但是babel似乎无法理解jsx语法。

这是我的依赖项:

"devDependencies": {  "babel-core": "^6.0.14",  "babel-loader": "^6.0.0",  "webpack": "^1.12.2",  "webpack-dev-server": "^1.12.1"},"dependencies": {  "react": "^0.14.1"}

这是我的 webpack.config.js

var path = require(''path'');module.exports = {  entry: [''webpack/hot/dev-server'',path.resolve(__dirname, ''app/main.js'')],  output: {    path: path.resolve(__dirname, ''build''),    filename: ''bundle.js''  },  module: {      loaders: [          { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}      ]  }};

这是我的 app/main.js

var React = require("react");React.render(<h1>hello world</h1>,document.getElementById("app"));

这是错误消息

ERROR in ./app/main.jsModule build failed: SyntaxError: ~/**/app/main.js: Unexpected token (2:13)  1 | var React = require("react");> 2 | React.render(<h1>hello world</h1>,document.getElementById("app"));    |              ^at Parser.pp.raise (~/**/node_modules/babylon/lib/parser/location.js:24:13)

谢谢你们

答案1

小编典典

添加“ babel-preset-react”

npm install babel-preset-react

并在webpack.config.js中向babel-loader添加“预设”选项

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

这是一个webpack.config.js示例:

{     test: /\.jsx?$/,         // Match both .js and .jsx files    exclude: /node_modules/,     loader: "babel",     query:      {        presets:[''react'']      }}

最近发布了Babel 6,并进行了重大更改:https :
//babeljs.io/blog/2015/10/29/6.0.0

如果您使用的是react 0.14,则应使用ReactDOM.render()(from require(''react-dom''))而不是React.render():https
:
//facebook.github.io/react/blog/#changelog

更新2018

不推荐使用Rule.query,而使用Rule.options。webpack 4中的用法如下:

npm install babel-loader babel-preset-react

然后在您的webpack配置中(作为module.exports对象中module.rules数组中的条目)

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

babel watch SyntaxError:意外令牌

babel watch SyntaxError:意外令牌

当我使用babel观看jsx文件时。但是存在语法错误。

在此之前,我使用react-tools进行观看,一切都很好。

SyntaxError: assets/js/chat/chat.jsx: Unexpected token (258:16)
  256 |         if (this.props.isOpen) {
  257 |             return (
> 258 |                 <div className="modal-overlay">
      |                 ^
  259 |                     <ReactCSSTransitionGroup transitionName={this.props.transitionName}>
  260 |                         <div className="chat-modal">
  261 |                             {this.props.children}

以下是我的代码。

var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
var Modal = React.createClass({
    render: function() {
        if (this.props.isOpen) {
            return (
                <div className="modal-overlay">
                    <ReactCSSTransitionGroup transitionName={this.props.transitionName}>
                        <div className="chat-modal">
                            {this.props.children}
                        </div>
                    </ReactCSSTransitionGroup>
                </div>
            )
        } else {
            return <div className="modal-overlay"><ReactCSSTransitionGroup transitionName={this.props.transitionName}/></div>
        }
    }
});

babel-loader jsx SyntaxError: Unexpected token

babel-loader jsx SyntaxError: Unexpected token

我是 React + Webpack 的初学者。

我在我的 hello world web 应用程序中发现了一个奇怪的错误。

我在 webpack 中使用 babel-loader 来帮助我将 jsx 转换为 js,但似乎 babel 无法理解 jsx 语法。

这是我的依赖项:

"devDependencies": {  "babel-core": "^6.0.14",  "babel-loader": "^6.0.0",  "webpack": "^1.12.2",  "webpack-dev-server": "^1.12.1"},"dependencies": {  "react": "^0.14.1"}

这是我的webpack.config.js

var path = require(''path'');module.exports = {  entry: [''webpack/hot/dev-server'',path.resolve(__dirname, ''app/main.js'')],  output: {    path: path.resolve(__dirname, ''build''),    filename: ''bundle.js''  },  module: {      loaders: [          { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}      ]  }};

这是我的app/main.js

var React = require("react");React.render(<h1>hello world</h1>,document.getElementById("app"));

这是错误信息

ERROR in ./app/main.jsModule build failed: SyntaxError: ~/**/app/main.js: Unexpected token (2:13)  1 | var React = require("react");> 2 | React.render(<h1>hello world</h1>,document.getElementById("app"));    |              ^at Parser.pp.raise (~/**/node_modules/babylon/lib/parser/location.js:24:13)

谢谢你们。

答案1

小编典典

添加“babel-preset-react”

npm install babel-preset-react

并在 webpack.config.js 中为 babel-loader 添加“预设”选项

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

这是一个示例 webpack.config.js:

{     test: /\.jsx?$/,         // Match both .js and .jsx files    exclude: /node_modules/,     loader: "babel",     query:      {        presets:[''react'']      }}

最近 Babel 6 发布了,有一个大的变化: https
://babeljs.io/blog/2015/10/29/6.0.0

如果您使用的是 react 0.14,则应使用ReactDOM.render()(from require(''react-dom''))
而不是React.render():https
://facebook.github.io/react/blog/#changelog

2018 年更新

Rule.query 已被弃用,取而代之的是 Rule.options。webpack 4 中的用法如下:

npm install babel-loader babel-preset-react

然后在你的 webpack 配置中(作为 module.exports 对象中 module.rules 数组中的一个条目)

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

babel-loader jsx SyntaxError:意外令牌[重复]

babel-loader jsx SyntaxError:意外令牌[重复]

我是React + Webpack的初学者。

我在Hello World Web应用程序中发现了一个奇怪的错误。

我在webpack中使用babel-loader来帮助我将jsx转换为js,但是babel似乎无法理解jsx语法。

这是我的依赖项:

"devDependencies": {  "babel-core": "^6.0.14",  "babel-loader": "^6.0.0",  "webpack": "^1.12.2",  "webpack-dev-server": "^1.12.1"},"dependencies": {  "react": "^0.14.1"}

这是我的 webpack.config.js

var path = require(''path'');module.exports = {  entry: [''webpack/hot/dev-server'',path.resolve(__dirname, ''app/main.js'')],  output: {    path: path.resolve(__dirname, ''build''),    filename: ''bundle.js''  },  module: {      loaders: [          { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}      ]  }};

这是我的 app/main.js

var React = require("react");React.render(<h1>hello world</h1>,document.getElementById("app"));

这是错误消息

ERROR in ./app/main.jsModule build failed: SyntaxError: ~/**/app/main.js: Unexpected token (2:13)  1 | var React = require("react");> 2 | React.render(<h1>hello world</h1>,document.getElementById("app"));    |              ^at Parser.pp.raise (~/**/node_modules/babylon/lib/parser/location.js:24:13)

谢谢你们

答案1

小编典典

添加“ babel-preset-react”

npm install babel-preset-react

并在webpack.config.js中向babel-loader添加“预设”选项

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

这是一个webpack.config.js示例:

{     test: /\.jsx?$/,         // Match both .js and .jsx files    exclude: /node_modules/,     loader: "babel",     query:      {        presets:[''react'']      }}

更新

不推荐使用Rule.query,而使用Rule.options。webpack 4中的用法如下:

npm install babel-loader babel-preset-react

然后在您的webpack配置中(作为module.exports对象中module.rules数组中的条目)

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

Create-React-App构建-“未捕获的SyntaxError:意外令牌<”

Create-React-App构建-“未捕获的SyntaxError:意外令牌<”

我意识到这个问题已经被问过多次了,但对我来说却无济于事。

我正在尝试创建create-react-app项目的静态版本,但出现以下错误:

Uncaught SyntaxError: Unexpected token <     1.ca81c833.chunk.js:1Uncaught SyntaxError: Unexpected token <     main.7ced8661.chunk.js:1

由于这些文件已缩小,因此我不确定从哪里开始调试它们。

根据其他SO响应,这是我尝试过的一些事情:

//Original index.html file, which gets included in the built file:<script type="text/babel" src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script>//package.json"babel-preset-es2015": "^6.24.1","babel-preset-react": "^6.24.1",//.babelrc file{  "presets": ["react", "es2015", "stage-1"]}

不知道这是否相关,但是我在我的Express服务器上有这个,我认为这是标准的:

if (process.env.NODE_ENV === "production") {    app.use(express.static(''client/built''));    app.get("*", (req, res) => {        res.sendFile(require(''path'')            .resolve(__dirname, ''client'', ''build'', ''index.html''));    })}

假设这实际上是一个JSX问题,那么整个过程就很混乱-不create-react-app应该自动处理JSX吗?

更新 :我刚刚发布了这个问题,但是已经有了相关的更新。通过运行pm2 servebuild,我可以通过pm2为页面提供静态服务,因此我认为问题可能出在我的服务器配置上。

答案1

小编典典

我最终在这里找到答案:https :
//github.com/facebook/create-react-
app/issues/1812

我从上方修剪了完整的解决方案,但我进行了更改:

app.use(express.static(''client/build''));app.get("*", (req, res) => {    res.sendFile(require(''path'')        .resolve(__dirname, ''client'', ''build'', ''index.html''));})

至:

const root = require(''path'').join(__dirname, ''client'', ''build'')app.use(express.static(root));app.get("*", (req, res) => {    res.sendFile(''index.html'', { root });})

我对第一个程序段不起作用肯定感到有些奇怪。我认为这与我的React项目中的相对链接有关,因为index.html尽管出现了错误,但确实将文件传递给了浏览器。也许一个完全静态的文件可以与第一个块一起使用,但是我想知道那是否正确。

今天的关于babel-loader jsx SyntaxError:意外令牌意外令牌什么意思的分享已经结束,谢谢您的关注,如果想了解更多关于babel watch SyntaxError:意外令牌、babel-loader jsx SyntaxError: Unexpected token、babel-loader jsx SyntaxError:意外令牌[重复]、Create-React-App构建-“未捕获的SyntaxError:意外令牌<”的相关知识,请在本站进行查询。

本文标签: