reactjs - 未捕获的 ReferenceError:未定义 dom
问题描述
我用 Node.js、React 和 Webpack 搭建了一个环境,但它不起作用。
import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import "../style/index.less"
class Demo extends Component {
render() {
return (
<div className="box">
{this.props.text}
</div>
)
}
}
ReactDOM.render(
<Demo text="this is a test" />,
document.querySelector('.container')
)
Webpack之后,生成的代码是:
__WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(dom(Demo, { text: "this is a test" }), document.querySelector('.container'));
当我编写一个 src 这个 js 的 HTML 文件时,它告诉我
未捕获的 ReferenceError:未定义 dom
而且我还在所有文件中搜索了这个 dom 定义,但我找不到它。
index.html 非常简单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="../build/style/index.css">
</head>
<body>
<div class="container"></div>
<script src="../build/script/runtime.js"></script>
<script src="../build/script/vendor.js"></script>
<script src="../build/script/index.js"></script>
</body>
</html>
webpack.config.js 如下:
const path = require('path')
const webpack = require('webpack')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const extractless = new ExtractTextPlugin({
filename: '../style/[name].css',
})
module.exports = {
entry: {
index: './src/script/index.js',
vendor: ['react', 'react-dom']
},
output: {
path: path.resolve(__dirname, 'build/script'),
filename: '[name].js'
},
module: {
rules: [{
test: /\.js$/,
include: [
path.resolve(__dirname, "src/script")
],
loader: "babel-loader",
},
{
test: /\.less$/,
use: extractless.extract({
use: [{
loader: 'css-loader', // translates CSS into CommonJS
},
{
loader: 'less-loader', // compiles Less to CSS
},
],
fallback: 'style-loader', // creates style nodes from JS strings
})
},
]
},
plugins: [
extractless,
new webpack.optimize.CommonsChunkPlugin({
names: ['vendor', 'runtime']
})
],
}
起初我使用 webpack4 并收到此错误,所以我切换到 webpack3 并且错误仍然存在。
解决方案
推荐阅读
- flutter - 无法读取脚本“C:\flutter\packages\flutter_tools\gradle\app_plugin_loader.gradle”,因为它不存在
- python - 这个网站不适合使用 beautifulsoup 进行网页抓取吗?
- swift - SwiftUI Picker 在 MacOS 上不选择结构
- r - 创建具有双 y 轴的条形图
- node.js - 如何在模式猫鼬中设置默认值?
- r - 在 R 中使用表单输入进行 rvest Webscraping
- c - C for 循环永远持续下去,我想我写错了程序
- session - Kafka Streams - 具有会话大小限制的自定义 SessionWindows 抑制
- javascript - 容器中的元素溢出:隐藏;尽管溢出的宽度更宽,但宽度与父级相同
- node.js - 有没有办法在异步函数中等待多个等待调用?