Wir arbeiten an Templating-Bibliothek mit Helfern (Dust.js), die Hilfsbibliothek hat unter Entwurfsmuster innerhalb der Codebasis.In Knoten v8 (v8.9.3 oder höher) benötigen commonjs modul create new context
(function(root, factory) {
if (typeof define === 'function' && define.amd && define.amd.dust === true) {
define(['dust-linkedin'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('dust-linkedin'));
// module.exports = factory; // <<--- This is working on v8
} else {
factory(root.dust);
}
}(this, function (dust) {
...
});
In Knoten v6, Export Fabrik (erfordern (‚staub linkedin‘)) funktioniert gut, aber nach dem Einschalten v8 (v8.9.3) zum Knoten und wir sehen Helfer werden nicht ausgeführt zu werden, ändert Fabrik (benötigt ('dust-linkedin')) bis fabrik in der helfer-library beginnen die dinge zu arbeiten.
In Knoten v8, wenn require ('dust-linkedin'), schafft es einen neuen Kontext/Objekt, aufgrund dessen wir alle unsere Helfer verlieren? Gibt es eine Änderung in Commonjs Verhalten erfordern?
PR fixiert habe ich Dutzende von Bibliotheken verwendet, die die UMD-Muster verwenden. Es gab kein Problem, das sich von Knoten 6 zu Knoten 8 bewegte. Bitte bearbeiten Sie Ihre Frage, um genau zu beschreiben, was Sie erwarten und was stattdessen * passiert *. Wenn Sie eine Ausnahme erhalten, buchen Sie den vollständigen Stack-Trace. Eigentlich sollten Sie Ihre Frage bearbeiten, damit die Leute das Problem reproduzieren können ([mcve]). Der auskommentierte Code, den du sagst, funktioniert, macht nicht das Richtige. – Louis
Danke Louis für Hinweise, wird die Frage ändern –
Der Code von [Staub-Helfer] (https://github.com/linkedin/dustjs-helpers/blob/master/dist/dust-helpers.js) hat 'Modul .exports.registerWith = factory; 'nach' module.exports = factory (require ('dust-linkedin')); 'aber der Code, den du zeigst, hat ihn nicht. – Louis