Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS模块生成失败:语法错误:意外标记-ReactDOM.render_Javascript_Reactjs_React Dom - Fatal编程技术网

Javascript ReactJS模块生成失败:语法错误:意外标记-ReactDOM.render

Javascript ReactJS模块生成失败:语法错误:意外标记-ReactDOM.render,javascript,reactjs,react-dom,Javascript,Reactjs,React Dom,为什么我会在下面看到这个错误?我的语句ReactDOM.render( app.js文件 import react from 'react' import ReactDom from 'react-dom' import App from 'components/App' require('index.html'); // Create app const container = document.getElementById('app-container'); // Render ap

为什么我会在下面看到这个错误?我的语句
ReactDOM.render(

app.js文件

import react from 'react'
import ReactDom from 'react-dom'
import App from 'components/App'

require('index.html');

// Create app
const container = document.getElementById('app-container');

// Render app
ReactDOM.render(<App />, container);

尝试将
resolve
属性添加到您的网页配置文件:

    resolve: {
        extensions: ['.js', '.jsx']
    },
    module: {
        loaders: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loaders: ["babel-loader"]
            }
        ]
    }

将此用作您的网页包配置文件

const webpack = require('webpack');
const path = require('path');

module.exports = {
    entry: [
        './src/app.js'
    ],
    output: {
        path: path.resolve(__dirname, './build'),
        filename: 'app.bundle.js',
    },
    module: {
        loaders: [
            {
                test: /\.html$/,
                loader: 'file-loader?name=[name].[ext]',
            },
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            query: {
                presets: ['es2015', 'react']
            }
        },
    ],
},
plugins: [
    new webpack.NamedModulesPlugin(),
]
};

您缺少预设

安装babel preset react for jsx语法

npm install babel-preset-react
预设

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

我遇到了同样的错误,我只需要将一个.babelrc文件添加到项目的路由中(与package.json位置相同),其中包含以下内容:

{
    "presets": [
        "env", 
        "react"
    ],
    "plugins": [
        "transform-class-properties"
    ]
}

如果有人正在与CRA合作,并出现此错误。解决方案如下

转到
package.json
并添加
babel
config。如果我看起来不是那么慷慨,下面是代码

 "babel": {
        "presets": [
            "react-app"
        ]
 }

保持CRA设置的其余部分不变。实际上CRA使用自己的自定义预设
react app
,这就是在
webpack.config.js
文件中设置的。因此不需要其他预设。

或者您可以将预设放在项目根目录下的.babelrc文件中。当然,您需要先安装它

像这样
/path/to/your/project/.babelrc

{
“预设”:[“@babel/preset env”,“@babel/preset react”]

}

我有这个问题,上面的答案都没有帮助

我有一个符号链接的文件夹——我的代码在D:/code上,但我是通过符号链接从C:/code运行的

其中一个js包正在识别链接并尝试在D中运行,但失败了


我必须从D:打开代码,而不是从符号链接路径打开代码,问题就消失了。

在根文件夹中添加
.babelrc
,并确保它是“预设”否“预设”

{
    "presets" : ["@babel/preset-env", "@babel/preset-react"]
}
这是我的
webpack.config.js
供参考:

const path=require('path');
const webpack=require('webpack');
module.exports={
条目:'./src/index.js',
模式:"发展",,
模块:{
规则:[
{
测试:/\(js|jsx)$/,
排除:/(节点\模块)/,
加载器:“巴别塔加载器”,
选项:{预设:[“@babel/env”]}
},
{
测试:/\.css$/,,
用法:[“样式加载器”、“css加载器”]
}
]
},
解析:{扩展名:['*','.js','.jsx']},
输出:{
path:path.resolve(uu dirname,'dist/'),
publicPath:“/dist/”,
文件名:“bundle.js”
},
开发服务器:{
contentBase:path.join(uu dirname,'public/'),
港口:3000,
公共路径:'http://localhost:3000/dist/',
hotOnly:真的
},
插件:[新网页包.HotModuleReplacementPlugin()]
}
Babel loader v8需要@Babel v7才能工作
package.json

  "devDependencies": {
    "@babel/cli": "^7.10.4",
    "@babel/core": "^7.10.4",
    "@babel/preset-env": "^7.10.4",
    "@babel/preset-react": "^7.10.4",
    "babel-loader": "^8.1.0"}

ReactDOM.render(,container);
不是有效的JS。
只能在.JSX文件中使用。@XDreamCodeing只要JSX被传输到纯JS,你就可以在JS文件中使用它……你会希望你的加载程序测试的正则表达式也包括一个.JS扩展名和一个.JSX。它可能是这样的:
/\(JS | JSX)$/
,这将确保Webpack传输你的app.js文件以及你的所有源代码。你这里有很多错误。React应该在导入时大写,ReactDom中的Dom应该大写。无需导入
index.html
。此外,你的组件导入路径应该是
/components/app
。接下来,你需要必须设置Babel预设才能传输代码,
Babel-preset-es2015
Babel-preset-react
@MichaelLyons
/\.jsx?$
匹配.js和.jsx…问号出现了这不是问题。默认情况下,Webpack已经解决了.js。谢谢!这就是它…我在遵循一个老朋友的教程project。我更新的React项目运行良好,所以我使用的是旧的过时的webpack.config。正如其他人所说,我没有将一些导入内容大写。谢谢!我用这个更现代的webpack.config修复了应用程序,并重命名了我的导入内容,现在它可以工作了。3分钟后!事实上,现在使用webpack 2 module.loader的应用程序在中已被弃用支持module.rules,其中一个相当于预设:['es2015','react']关于babel 7?我正在使用。babelrc在另一个应用程序上工作,但在另一个应用程序中不工作。这是为我准备的,但我必须将
env
更改为
@babel/env
,将
react
更改为
react-app
。我正在使用一个带有Create-react-react-app+TypeScript+Rescripts()
{
    "presets" : ["@babel/preset-env", "@babel/preset-react"]
}
  "devDependencies": {
    "@babel/cli": "^7.10.4",
    "@babel/core": "^7.10.4",
    "@babel/preset-env": "^7.10.4",
    "@babel/preset-react": "^7.10.4",
    "babel-loader": "^8.1.0"}