J'ai une application côté client qui utilise certaines propriétés globales du navigateur telles que Element
ou document
.Définir globales lors de la mise en bundle à umd ou commonjs
Je voudrais lancer mon application dans Node.js aussi bien et je suis actuellement remplaçant ces GLOBALS avec le domino dom implementation dans mon serveur comme ceci:
const domino = require("domino");
const domimpl = domino.createDOMImplementation();
const document = domimpl.createHTMLDocument();
Object.assign(global, Element: domino.impl.Element, document};
const myApp = require('my-app');
J'utilise actuellement Rollup pour regrouper différentes versions de my-app
, comment puis-je avoir rollup le faire pour moi automatiquement pour la _server
version de my-app
afin que les consommateurs de my-app
n'ont pas à faire cela?
Je pensais écrire mon propre plugin de rollup, mais j'ai l'impression que l'écrasement des globals semble une pratique courante.
Merci! C'est ce que je cherche - mais quand je fais cela mon fichier principal empaqueté finit par ressembler à ceci: '(fonction (globale, usine) { \t typeof exports === 'objet' && typeof module! == 'undefined'? factory(): \t typeof define === 'fonction' && define.amd? define (usine): \t (factory()); } (ceci, (function() {'use stricte ' module.exports = require (' ./ serveur '); }))) ' –
qui est un module UMD ... notez le single « require (' ./ serveur ') "et le tour est , il n'a pas résolu le besoin. –
J'ai mis à jour ma réponse –