Importation ES6 module dans la portée globale
TLDR: Comment puis-je faire un module (importées par l'ES6 syntaxe) étendue globale (ou de référence d'une classe importée à l'intérieur d'une autre classe)?
Je suis de l'importation d'un module à partir d'un package qui n'était pas correctement mis en œuvre (pas d'exportation, etc), mais je suis en cours d'exécution dans certaines questions.
Ce que je fais est à l'aide de var
pour définir le module global (pas grand), par exemple
var Example = require('./node_modules/example/long_path_to_file.js');
Que j'ai besoin de l'utiliser comme si dans ma classe (le module prend le contrôle de this
et des instances de classe ne sont pas disponibles dans la portée globale donc je ne peux pas utiliser ma classe que je le feriez normalement):
new window.Example(...)
Cela fonctionne, mais il n'est pas exceptionnel que je suis en utilisant webpack et préfèrent utiliser le bon es6 syntaxe
import Example from './example';
puis dans example.js
export default Example = require('./node_modules/example/long_path_to_file.js');
Cependant, cela signifie qu'il n'est plus global dont l'étendue, et je suis incapable de trouver une solution.
J'ai essayé des choses comme window.Example = Example
mais ça ne fonctionne pas.
example/long_path_to_file.js
est la définition d'une variable window.Example
lequel vous souhaitez utiliser via webpack?window.aaa = require(....)
\Que le fichier d'exportation, certains code que j'ai besoin de l'utiliser; j'ai été la mise à
window.Example
en utilisant var Example
dans le contexte le plus externe (pas sûr si strict
mode même le permet). J'ai besoin qu'il soit mondial, car ce module prend le pas sur le contexte dans ma classe (et es6 des instances de classe ne sont pas référencées dans la portée globale)Alors @RoyiNamir est correct
mon premier exemple (à l'aide de
require
) fonctionne déjà, mais je veux savoir comment faire un module global à l'aide de ES6OriginalL'auteur user 32394023 | 2016-02-24
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez
webpack
il est facile à configurer. Voici donc un exemple simple comment la mettre en œuvre.webpack.config.js
some.html
Aussi, si vous ouvrez votre
bundle.js
fichier, vous allez voir comment webpack fait pour vous.Aussi je suggère de regarder webpack bibliothèque de configuration.
J'espère que ça va vous aider.
Grâce
bundle.js
est mon module, mais je veuxother.js
mondiale qui est au sommet debundle.js
viaimport
)vous pouvez accéder à elle comme
home.mySmallModule
bibliothèque paramètre est très utile, merci
OriginalL'auteur The Reason
J'ai fait quelques tests et ça fonctionne correctement:
OriginalL'auteur Jon Surrell