我刚刚遇到了不可预知的情况下,使用自定义的网页包配置。我会尽量解释的问题。
这是我的简单应用程序(文件index.js):
console.log('!!this', this);
这是我的网络包配置(文件webpack.config.js):
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
plugins: [
new HtmlWebpackPlugin({
template: './public/index.html',
}),
],
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
resolve: {
extensions: ['.js', '.jsx', '.json'],
},
module: {
rules: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
{
test: /\.scss$/,
use: [
'style-loader',
'css-loader',
{
loader: 'sass-loader',
options: {
additionalData: `@import './src/constants/global';`,
},
},
],
},
{
test: /\.(png|svg|jpe?g|gif)$/i,
use: [
{
loader: 'file-loader',
options: { name: 'img/[name].[ext]' },
},
'image-webpack-loader',
],
},
],
},
};
这是我启动应用程序的npm脚本(文件package.json):
"scripts": {
"dev": "webpack serve --config webpack.config.js",
},
因此,我看到了下一幅图-所有代码执行两次(index.js,VM787 index.js)。除此之外,如果我在应用中使用此配置的数据获取回调,我将在Network选项卡中看到两个相等的请求。
谁知道这是什么原因,如何解决?
谢谢!
2条答案
按热度按时间wz1wpwve1#
这可能是StrictMode的结果。它会挂载、卸载并再次挂载组件,以检查是否一切都在正常运行。尝试从index.js中删除它(只是检查一下)。请注意,它对它的用途很有用,而且它只在dev模式下有这种行为。
cld4siwp2#
如果您自己将JavaScript导入到HTML文件中,则需要在HtmlWebpackPlugin中禁用注入: