【发布时间】:2018-05-30 16:56:06
【问题描述】:
我正在尝试获得一个非常简单的 react + webpack shell。
一切似乎都在正确捆绑和编译,但是当我运行应用程序时,没有呈现任何反应。
我的 webpack 配置...
module.exports = {
entry: [
'./src/index.js'
],
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use:
{
loader: 'babel-loader',
query: {presets: ['react', 'es2015']}
}
}
]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
contentBase: "./src",
hot: true,
port: 3000,
historyApiFallback: true
} };
索引.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>React App Setup</title>
</head>
<body>
<div id='root'></div>
<script type="text/javascript" src="bundle.js"></script>
</body>
</html>
还有 Index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.jsx';
ReactDOM.render(<App />, document.getElementById('root'));
如果需要,还有 App.js
import React from 'react';
export default class App extends React.Component {
render() {
console.log("made it here");
return (
<div style={{textAlign: 'center'}}>
<h1>Hello World</h1>
</div>);
}
}
我可能使用了某种类型的加载器错误,但是如果它没有加载,为什么我会在 bundle.js 中看到“Hello Word”和我的控制台日志语句???
【问题讨论】:
-
看到下面的评论 - 如果你正在寻找轻量级的东西,你应该看看 Parcel
-
哦实际上你可能需要脚本标签之前 html节点
-
尝试将
<script type="text/javascript" src="bundle.js"></script>移动到html文档的<head>部分 -
感谢那是关键,而不是头部,我在身体之后移动。
标签: javascript reactjs webpack