webpacck打包完react后引入到html文件中报错:Target container is not a DOM element...

手动写了一个react程序,用webpack打包后生成了一个bundle,js文件,然后引入到index.html文件夹后,在浏览器打开该html文件,报错Target container is not a DOM element,一直找原因发现是引入bundle.js的顺序不对,应该放在div元素的下方,下面具体看代码

react相关js内容

var React = require(‘react‘);
var ReactDom = require(‘react-dom‘);
const element = <div>Hello, world</div>;
ReactDom.render(
element,
document.getElementById(‘root‘)
)

package.json内容

{
"name": "start",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "set NODE_ENV=dev && webpack-dev-server --progress --colors"
},
"author": "shen",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.7.7",
"@babel/preset-react": "^7.7.4",
"babel-loader": "^8.0.6",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"webpack": "^4.41.4",
"webpack-dev-server": "^3.10.1"
},
"devDependencies": {}
}

webpack.config.js内容

var webpack = require(‘webpack‘);
var path = require(‘path‘);
module.exports = {
mode: ‘development‘,
entry: path.resolve(__dirname,‘main/js/index.js‘),
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: [{
loader: ‘babel-loader‘
}]
}]
},
output: {
filename: ‘bundle.js‘
}
}

.babelrc文件内容

{
"presets": ["@babel/react"],
"env": {
"dev": {
"plugins": [["react-transform", {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}]
}]]
}
}
}

index.html内容

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="root"></div>
</body>

//这里一般是会放在head里,就回报错Target container is not a DOM element...,放到元素下边就好了
<script src="dist/bundle.js"></script>
</html>

原文地址:https://www.cnblogs.com/shenwh/p/12105147.html

时间: 2024-11-06 20:00:29

webpacck打包完react后引入到html文件中报错:Target container is not a DOM element...的相关文章

新安装完 tensorflow 后import tensorflow as tf 报错

>>> import tensorflow as tf /opt/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 =

HTML文件通过jQuery引入其他HTML文件报错has been blocked by CORS policy

HTML通过jQuery引入模板 完整报错 新创建一个chrome快捷方式,命名为chrome-debug 右键属性,在目标后添加参数,原始路径如下 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 添加参数后如下 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:\Chr

Eclipse-Eclispe导入正确工程后出现xml等文件报错

我用Eclipse IDE导入一个正确的项目工程,一些xml配置文件和jsp页面报错,点进去查看具体的错误,xml文件是一些头文件处报错,jsp是一些函数等等.可是别人导入没有报错. 这是因为我们写的这些文件没有严格按照J2EE相关规则进行编写,不过运行也不会出错,只要不让我们项目配置选中这些就好了. 解决方法: 第一步:Project Explorer (如果没有这个窗口可以在eclipse工具栏->Window->show View ->Project Explorer)->选

安装pymysql后,import pymysql,pycharm编辑器中报错

cmd 中运行 pip3 install PyMySQL 或者采用git git clone https://github.com/PyMySQL/PyMySQL cd PyMySQL/ python3 setup.py install 原文地址:https://www.cnblogs.com/jiang-xy/p/9225339.html

安卓安装完应用后,如何获取包的meta-inf目录下的文件?

============问题描述============ 安卓安装完应用后,可以获取包的meta-inf目录下的文件吗? 在手机上安装完了应用后,然后打开应用,此时,应用里的SDK有没有办法取到应用包里的meta-inf文件? 为什么要这么做? 因为同一个应用包,需要往里面打不同的渠道ID. 然后又要保持签名一致. 这个时候需要往meta-inf里面写文件,因为这样不会影响到签名. 但是问题来了,如果一两个渠道还好,可以手工把渠道ID打到SDK里就可以,但是一旦渠道太多,应用太多的话,不可能手工

解决win7 安装完jdk7后,再安装jdk8出现的问题 has value &#39;1.8&#39;, but &#39;1.7&#39; is required.

http://blog.csdn.net/qiyueqinglian/article/details/46605759 电脑装了jdk8,JAVA_HOME也是设置的8. 不删除8变回7. 改了JAVA_HOME,并且path值里的C:\ProgramData\Oracle\Java\javapath也删了 运行java -version,报错 Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVers

飞行棋2.0--输完姓名后全自动,可修改为人机交互模式

1 // 2 // main.m 3 4 #import <Foundation/Foundation.h> 5 #import "GameController.h" 6 int main(int argc, const char * argv[]) 7 { 8 GameController *ctl = [GameController new]; 9 [ctl startGame]; 10 11 // GameMap *map = [GameMap new]; 12 //

Linux 装完系统后,后添加网卡

装完网卡后,启动机器 [[email protected] ~]#more /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long a

Linux安装完Tomcat后无法登陆管理界面

今天在Linux中安装完Tomcat后无法登陆Tomcat的管理界面,也就无法利用Tomcat管理界面来部署项目. 在Windows中一般配置完Tomcat后,只要在[conf]目录下的“tomcat-user.xml”文件中配置如下的即可: <user username="admin" password="admin" roles="manager-gui" /> 但是我在Linux中也是这么配置,但是想登陆管理界面时则是403 A