#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. создайте демонстрацию, которая воспроизводит проблему