/ / Wrap CommonJS tretej strany knižnice ako modul AMD - javascript, node.js, requirejs, amd, commonjs

Zalomiť knižnicu CommonJS tretej strany ako modul AMD - javascript, node.js, requirejs, amd, commonjs

Snažím sa používať knižnicu s uzlami s požiadavkou, ale nedokážem to kompatibilné so systémom AMD. Používam túto knižnicu: https://github.com/wdavidw/node-pad

Vyexportuje funkciu. Otázkou je, ako ju zabaliť ako modul AMD? Snažil som sa ho exportovať shim options ale nefungovalo to. Nevidím chybu, ale vyrieši to undefined inštancie.

Akýkoľvek náznak?

To, čo som doteraz skúšal:

let config: RequireConfig = {
paths: {
"text": "../node_modules/requirejs-text/text",
"plugins": "../node_modules/durandal/js/plugins",
"durandal": "../node_modules/durandal/js",
"transitions": "../node_modules/durandal/js/transitions",
"knockout": "../node_modules/knockout/build/output/knockout-latest",
"jquery": "../node_modules/jquery/dist/jquery",
"bootstrap": "../node_modules/bootstrap/dist/js/bootstrap",
"pad": "../node_modules/pad/lib/index",
"i18n-iso-countries": "../node_modules/i18n-iso-countries/index",
"json": "../node_modules/requirejs-plugins/src/json",
"alpha2codes": "../node_modules/i18n-iso-countries/alpha2codes",
"codes": "../node_modules/i18n-iso-countries/codes.json",
"languages": "../node_modules/i18n-iso-countries/languages",
"ar": "../node_modules/i18n-iso-countries/langs/ar.json",
"cs": "../node_modules/i18n-iso-countries/langs/cs.json",
"de": "../node_modules/i18n-iso-countries/langs/de.json",
"en": "../node_modules/i18n-iso-countries/langs/en.json",
"es": "../node_modules/i18n-iso-countries/langs/es.json",
"et": "../node_modules/i18n-iso-countries/langs/et.json",
"fi": "../node_modules/i18n-iso-countries/langs/fi.json",
"fr": "../node_modules/i18n-iso-countries/langs/fr.json",
"hu": "../node_modules/i18n-iso-countries/langs/hu.json",
"it": "../node_modules/i18n-iso-countries/langs/it.json",
"nb": "../node_modules/i18n-iso-countries/langs/nb.json",
"nl": "../node_modules/i18n-iso-countries/langs/nl.json",
"nn": "../node_modules/i18n-iso-countries/langs/nn.json",
"pl": "../node_modules/i18n-iso-countries/langs/pl.json",
"pt": "../node_modules/i18n-iso-countries/langs/pt.json",
"ru": "../node_modules/i18n-iso-countries/langs/ru.json",
"sv": "../node_modules/i18n-iso-countries/langs/sv.json",
"tr": "../node_modules/i18n-iso-countries/langs/tr.json",
"zh": "../node_modules/i18n-iso-countries/langs/zh.json"
},
shim: {
"bootstrap": {
deps: ["jquery"]
},
"i18n-iso-countries": {
deps: ["pad", "alpha2codes", "languages"]
},
"pad": {
exports: "pad"
}
},
urlArgs: `=${new Date().getTime()}`
};

requirejs.config(config);
require(["jquery", "bootstrap"], () => {
require(["./bootstrapper"], (b) => {
var instance = new b();
instance.init();
});
});

odpovede:

1 pre odpoveď č. 1

Na shim možnosť nezalamuje-AMD moduly do AMD define. To je naozaj chcel použiť skripty, ktoré don "t podporujú akúkoľvek modulárny systém vôbec.Načítať modul CommonJS s RequireJS minimum práce, ktoré treba urobiť, je zabaliť to s define volanie tohto formulára:

define(function (require, exports, module) {
// script contents here...
});

Existuje mnoho spôsobov, ako to urobiť. Môžete implementovať stavať krok v čokoľvek stavať príliš umožňuje pridať zábal.Alebo môžete použiť nástroj, ktorý robí to už ako RequireJS"(pre optimalizáciur.js).