Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack Web包输出重复的脚本标记_Webpack_Html Webpack Plugin - Fatal编程技术网

Webpack Web包输出重复的脚本标记

Webpack Web包输出重复的脚本标记,webpack,html-webpack-plugin,Webpack,Html Webpack Plugin,我刚开始构建我的应用程序,所以目前我只有很少的代码。当webpack生成index.html文件时,它会两次包含所有Javascript,这会导致React中出现错误 我的webpack配置有什么问题,它会复制所有的javascript HtmlWebpackPlugin生成的html包含: 我的webpack.config.js包含 const path=require('path'); const webpack=require('webpack'); const HtmlWebpack

我刚开始构建我的应用程序,所以目前我只有很少的代码。当webpack生成index.html文件时,它会两次包含所有Javascript,这会导致React中出现错误

我的webpack配置有什么问题,它会复制所有的javascript

HtmlWebpackPlugin
生成的html包含:


我的webpack.config.js包含

const path=require('path');
const webpack=require('webpack');
const HtmlWebpackPlugin=require('html-webpack-plugin');
const CopyWebpackPlugin=require('copy-webpack-plugin');
const MiniCssExtractPlugin=require('mini-css-extract-plugin');
module.exports=(环境,{mode})=>{
变量配置={
条目:{
应用程序:'./src/app.js',
react:['react','react dom'],
},
devtool:'无',
开发服务器:{
contentBase:path.join(uu dirname,'dist'),
是的,
热:是的,
港口:9000,
},
决心:{
模块:['src','node_modules'],
扩展名:['*'、'.js'、'.jsx'、'.css'、'.scss'、'.sass'],
别名:{
“~config”:path.resolve(\uu dirname,'src/config'),
“~components”:path.resolve(u dirname,'src/components'),
“~styles”:path.resolve(uu dirname,'src/styles'),
“~images”:path.resolve(uu dirname,'src/images'),
“@material ui/styles”:path.resolve(uuu dirname,'node_modules',“@material ui/styles”),
},
},
输出:{
path:path.resolve(uu dirname,'dist'),
文件名:'index.[hash].js',
chunkFilename:'[name].[contenthash].js',,
},
优化:{
runtimeChunk:'single',
分割块:{
缓存组:{
供应商:{
测试:/[\/]节点单元模块[\\/]/,,
名称:'供应商',
块:“全部”,
},
},
},
},
//统计数据:{
//maxModules:无限,
//优化援助:没错,
// },
插件:[
新HtmlWebpackPlugin({
缩小:错误,
模板:require('html-webpack-template'),
是的,
标题:“八达通”,
favicon:“./public/images/favicon/favicon.ico”,
appMountId:“应用程序”,
meta:[{name:'viewport',content:'width=设备宽度,初始比例=1.0'}],
链接:[
{href:'/site.webmanifest',rel:'manifest'},
{href:'https://fonts.googleapis.com/css?family=Roboto:300,400500700&display=swap',rel:'stylesheet'},
],
AppMountHtmlStippet:“”,
头颈钳:
'div.app-spinner{位置:固定;顶部:50%;左侧:50%;边框:16px实心#f3f3;边框顶部:16px实心#3498db;边框半径:50%;宽度:120px;高度:120px;边距:-60px 0-60px;z索引:1;动画:旋转2s线性无限;}@keyframes旋转{0%{transform rotate(0deg)}100%{transform rotate(360度)},
}),
新的CopyWebpackPlugin({
模式:[{from:'public'}],
}),
],
模块:{
规则:[
{
测试:/\(js|jsx)$/,
排除:/node_模块/,
使用:{
加载器:“巴别塔加载器”,
选项:{
cacheDirectory:true,
缓存压缩:false,
预设:['@babel/preset-env',{modules:false}],'@babel/preset-react'],
},
},
},
{
测试:/\(png | svg | jpg | gif)$/,
使用:{
加载器:“文件加载器”,
},
},
],
},
};
如果(模式==‘开发’){
config.mode='development';
config.devtool='eval source map';
config.plugins.push(新的webpack.HotModuleReplacementPlugin());
config.module.rules.push({
测试:/\(sass | scss | css)/,
排除:/node_模块/,
用法:['style-loader','css-loader','sass-loader'],
});
}否则{
config.mode='生产';
config.devtool='none';
push(新的MiniCssExtractPlugin({filename:'index.css'}));
config.module.rules.push({
测试:/\(sass | scss | css)/,
排除:/node_模块/,
用法:[MiniCssExtractPlugin.loader,'css loader','sass loader'],
});
}
返回配置;
};