gpt4 book ai didi

javascript - Webpack Dev Server 不热重载,需要手动构建 webpack

转载 作者:行者123 更新时间:2023-11-30 06:14:47 25 4
gpt4 key购买 nike

这是一个小型 React 应用的子组件中的一些示例渲染代码:

<React.Fragment>
<h1>From Tab Section</h1>
<h2>update 2</h2> // doesn't display in the browser
<p>update 3</p> // also doesn't display
</React.Fragment>

不同的是,在写完 h1 标签后,我重新构建了 Webpack。

进一步的测试证实,重建 bundle.js 并在它注入(inject)的 index.html 页面上刷新浏览器是查看更新的唯一方法。

我想我有热重载设置,如文档中所示。根据另一篇 SO 帖子,我在启动命令中添加了 --inline 。但是仍然需要手动构建和开发服务器重启。

这里还需要什么?

// package.json
"scripts": {
"test": "jest --watch",
"watch": "webpack --watch",
"start": "webpack-dev-server --open --inline",
"build": "webpack"
},
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"@babel/preset-react": "^7.0.0",
"babel-jest": "^24.8.0",
"babel-loader": "^8.0.6",
"jest": "^24.8.0",
"webpack": "^4.35.0",
"webpack-cli": "^3.3.5",
"webpack-php-loader": "^0.5.0"
},
"dependencies": {
"dotenv": "^8.0.0",
"dotenv-webpack": "^1.7.0",
"history": "^4.9.0",
"lodash": "^4.17.11",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^7.1.0",
"react-router-dom": "^5.0.1",
"redux": "^4.0.1",
"save-dev": "^2.0.0",
"webpack-dev-server": "^3.7.2"
}

// webpack.config.js
const webpack = require("webpack");
const dotenvWebpack = require("dotenv-webpack");
const path = require("path");

module.exports = {
entry : {
'./adminSettingsArea' :
'./adminSettingsArea/src/index.jsx'
},
output : {
filename : '[name]/bundle.js',
path : path.resolve(__dirname),
},
devtool: 'inline-source-map',
devServer : {
contentBase : './adminSettingsArea',
hot : true
},
plugins : [
new webpack.HotModuleReplacementPlugin(),
new dotenvWebpack()
],
module : {
rules : [
{
test : /\.(js|jsx)$/,
exclude : [/node_modules/, /vendor/],
use : {
loader : "babel-loader",
options : {
presets : [
'@babel/preset-env',
"@babel/preset-react"
]
},
}
}
],
},
};

最佳答案

通过将 index.html 文件移动到同一文件夹 ( ./adminSettingsArea/src ) 解决,因为其余内容 webpack 在内存中更新。

以前这个索引文件比 contentBase 值低一级。因此,webpack 最初能够加载 index.html 文件,但不能加载/src 子文件夹中的 jsx 文件。

此外,请参阅下面的示例,了解我在输出路径中遇到的另一个怪癖。

entry : {
'adminArea' :
'./adminSettingsArea/src/index.jsx'
},
output : {
filename : 'shared/[name].bundle.js', // for some reason I need to assign the subfolder here instead of arg 2 in the next line
path : path.resolve(__dirname, ''),
},
devtool: 'inline-source-map',
devServer : {
contentBase : './adminSettingsArea/src',
hot : true
},

关于javascript - Webpack Dev Server 不热重载,需要手动构建 webpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56798140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com