Если вы используете веб-пакет для создания приложения, он запускает ваш код записей , когда он будет загружен .
Например, для простого "Hello World" код, вы получите что-то вроде этого
!function(arrayOfEntries) {
var t = {};
function runEntryByIndex(n) {
if (t[n]) return t[n].exports;
var o = t[n] = {i: n, l: !1, exports: {}};
return arrayOfEntries[n].call(o.exports, o, o.exports, runEntryByIndex), o.l = !0, o.exports;
}
runEntryByIndex.m = arrayOfEntries, runEntryByIndex.c = t, runEntryByIndex.d = function(e, t, n) {
runEntryByIndex.o(e, t) || Object.defineProperty(e, t, {
enumerable: !0,
get: n
});
}, runEntryByIndex.runEntryByIndex = function(e) {'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: 'Module'}), Object.defineProperty(e, '__esModule', {value: !0});}, runEntryByIndex.t = function(e, t) {
if (1 & t && (e = runEntryByIndex(e)), 8 & t) return e;
if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
var n = Object.create(null);
if (runEntryByIndex.r(n), Object.defineProperty(n, 'default', {
enumerable: !0,
value: e
}), 2 & t && 'string' != typeof e) for (var o in e) runEntryByIndex.d(n, o, function(t) {return e[t];}.bind(null, o));
return n;
}, runEntryByIndex.n = function(e) {
var t = e && e.__esModule ? function() {return e.default;} : function() {return e;};
return runEntryByIndex.d(t, 'a', t), t;
}, runEntryByIndex.o = function(e, t) {return Object.prototype.hasOwnProperty.call(e, t);}, runEntryByIndex.p = '', runEntryByIndex(runEntryByIndex.s = 0);
}([function(e, t) {console.log('Hello World!');}]);
Если вы выполните приведенные выше инструкции, вы увидите, что он запустит функцию, которая содержит console.log("Hello World")
.
Если мы говорим о зависимостях код, тогда он будет выполнен, когда он вам понадобится. Например, у нас есть два файла «A. js» и «B. js». «A. js» зависит от «B. js»
A. js
console.log("A");
require("./B.js");
B. js
console.log("B");
Если вы создадите это приложение, где A. js будет точкой входа, тогда вы увидите вывод
"A"
"B"
Давайте изменим порядок операторов внутри «A. js»
A. js
require("./B.js")
console.log("A");
В этом случае на выходе будет
"B"
"A"
Webpack также позволяет создавать код библиотеки. Вы можете прочитать об этом здесь https://webpack.js.org/guides/author-libraries/
Если вам интересно, что такое webpackJsonp, вы можете прочитать об этом здесь https://webpack.js.org/configuration/output/#outputjsonpfunction