module export globalnich funkci (commonjs + webpack) rubrika: Programování: JavaScript

2 jarek_1
položil/-a 21.9.2017

Zdravim, v praci jsem dostal za ukol pracovat s "frameworkem" nebo enginem (nebo jak to nazvat), ktery tvori nekolik souboru obsahujici globalni funkce a promenne. chtel bych na tomto enginu vytvorit aplikaci, kterou budu modularizovat a bundlovat pomoci webpacku. bohuzel strukturu toho jadra nemuzu menit, tzn funkce musi byt ve formatu function foo() {}... existuje nejake reseni jak webpacku rict exportuj vsechny funkce v techto souborech do modulu? bylo by vhodnym resenim nechat framework jako nemodul (globalni) a novou cast aplikace modularizovat? dekuji za rady a napady.

odkaz
7 maryo
odpověděl/-a 26.9.2017
 
upravil/-a 26.9.2017

Určitě to nejde nijak změnit i při zachování zpětný kompatibility? Viz např. https://github.com/umdjs/umd/blob/master/templates/returnExports.js
Nebo alespoň místo function foo() {} mít window.foo = function foo () {} resp. root.foo = function foo () {}

S UMD nebo alespoň nějakym root objektem jde použít imports-loader https://github.com/webpack-contrib/imports-loader
kde se dá místo toho podstrčit CommonJS module.exports/window/global whatever.

Případně exports-loaderem (https://github.com/webpack-contrib/exports-loader) jde exportnout specifický proměnný/funkce pokud se vyjmenujou.

Jako asi nejzazší možnost je použít script-loader (https://github.com/webpack-contrib/script-loader) kterej to hodí za runtimu do script tagu a pak je to v prohlížečí dostupný bez úprav v globálnim scopu.

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.