gpt4 book ai didi

javascript - Webpack HtmlWebpackPlugin 删除 DOM 元素

转载 作者:行者123 更新时间:2023-11-28 14:34:07 25 4
gpt4 key购买 nike

我使用 Python Flask 作为我的后端,/路由转到 static/dist,这是 webpack 的构建目的地。我在前端使用 React。当我在 web pack 中构建时,它会删除 body 标记内的所有节点。这会导致错误:_registerComponent(...):目标容器不是 DOM 元素。我通过将 div 添加到生成的 index.html 来验证这是问题所在。有人知道复制这些节点的方法吗?我尝试为 HtmlWebpackPlugin 添加不同的配置。我还尝试在调用渲染之前在我的 index.jsx 文件中动态添加文档元素。这是我的 webpack 配置。

const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const config = {
entry: __dirname + '/js/index.jsx',
output: {
path: __dirname + '/dist',
filename: 'bundle.js',
publicPath: '/dist'
},
resolve: {
extensions: [".js", ".jsx", ".css"]
},
module: {
rules: [
{
test: /\.jsx?/,
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader',
})
},
{
test: /\.(png|svg|jpg|gif)$/,
use: 'file-loader'
}
]
},
plugins: [
new ExtractTextPlugin('styles.css'),
new HtmlWebpackPlugin({title:"my app"})
]
};

module.exports = config;

最佳答案

HtmlWebpackPlugin 不会生成“react”特定的 html。在这种情况下,生成的 html 将为:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Webpack App</title>
</head>
<body>
<script src="bundle.js"></script>
</body>
</html>

在这种情况下,您可以指定一个模板,您可以在其中手动创建所需的 div。

要实现此目的,您只需:

new HtmlWebpackPlugin({
template: path_to_where_my_template_is,
inject: 'body',
alwaysWriteToDisk: true
});

Webpack 将向您注入(inject)所需的脚本标签。

关于javascript - Webpack HtmlWebpackPlugin 删除 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50293309/

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