событие загрузки окна запущено только один раз

#javascript #webpack

#javascript #webpack

Вопрос:

В настоящее время я создаю небольшой проект, webpack и все идет хорошо, пока я пытаюсь создать загрузчик.

После объединения с webpack в loader.js файле мое window.onload событие срабатывает только после загрузки первой страницы, это определенно проблема с кешем, но я не могу понять, как отключить / удалить / исправить это.

вот вырезка из моей настройки:

webpack.prod.config.js

 {
    entry: {
        home: "./assets/js/app/home.js",
        service: "./assets/js/app/service.js",
        contacts: "./assets/js/app/contacts.js"
    },
    output: {
        path: path.join(__dirname, "build/js"),
        publicPath: "/build/js",
        filename: "[name].bundle.min.js"
    },
    resolve: {
        alias: {
            "jquery": cfg.vendors   "/jquery.min",
            "jquery-validation": cfg.vendors   "/jquery.validate",
            "google-maps": cfg.vendors   "/Google.min.js"
        },
        extensions: ["", ".js", ".es6"]
    },
    module: {
        loaders: [
            {
                test: /.js$/,
                exclude: /node_modules/,
                loader: "babel-loader"
            }
        ]
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env': {
                'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
            }
        }),
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery"
        }),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        }),
        new CopyWebpackPlugin([
            { from: node_path   "/jquery/dist/jquery.min.js", to: cfg.vendors },
            { from: node_path   "/jquery-validation/dist/jquery.validate.js", to: cfg.vendors },
            { from: node_path   "/google-maps/lib/Google.min.js", to: cfg.vendors }
        ])
    ]
}
  

home.js

 "use strict";

import $ from "jquery";
import Loader from "../utils/loader";
import ScrollTop from "../utils/scrollTop";

$(() => {
    new Loader();
    new ScrollTop();
});
  

loader.js

 const LOAD_TIME = 3000;

let loaderHolder = $("#loader-holder"),
    body = $("body");

class Loader{

    constructor(){
        this._events();
    }
    _events(){
        $(window).on("load", (e) => { this._handleLoad(e) });
    }
    _handleLoad(e){

        setTimeout(() => {

            loaderHolder.addClass("loaded");
            body.addClass("loaded");

        }, LOAD_TIME);

        return false;
    }
}

export default Loader;
  

задача npm для объединения:

 "prod-build": "set NODE_ENV=production amp;amp; webpack -p --config webpack.prod.config.js --progress"
  

Любая помощь будет оценена.

Комментарии:

1. можете ли вы перефразировать вопрос? Не ясно, в чем конкретно проблема. Часть о «событии загрузки окна, запущенном только один раз» , сбивает с толку

2. хорошо, дайте мне минуту, чтобы сделать это

3. Не уверен, о чем вы спрашиваете. событие загрузки окна запускается только один раз, я думаю, что onload должен запускаться только один раз.

4. window.onload срабатывает только после того, как вы впервые загружаете страницу, вот и все, вы перезагружаете страницу f5 и наблюдаете за загрузчиком навсегда, потому window.onload что он не сработал

5. создайте демонстрацию, которая воспроизводит проблему