web-dev-qa-db-fra.com

Comment importer un "ancien" code ES5 dans ES6

J'ai une application ES6 (Avec Babel 6.5 Et Webpack) et elle importe avec succès mes modules comme ceci:

import $ from 'jquery';

Je voulais installer https://github.com/robflaherty/riveted/blob/master/riveted.js (un plugin pour Google Analytics), mais comme vous pouvez le voir, le code n'a pas quelque chose comme module.exports = ..., il ne définit qu'une variable globale riveted, mais il a un package.json apparemment valide pointant vers riveted.js.

Donc, faire quelque chose comme

import riveted from 'riveted'
riveted.init();

renvoie une erreur:

_riveted2.default.init n'est pas une fonction

import riveted from 'riveted'
riveted.init();
import 'riveted'
riveted.init();

renvoie une erreur:

riveté n'est pas défini

import * as riveted from 'riveted'
riveted.init();

renvoie une erreur:

riveted.init n'est pas une fonction

Comment accéder à la fonction init () de riveted?

20
wnstnsmth

Vous pouvez utiliser le chargeur d'export Webpack:

var riveted = require("exports?riveted!riveted")

Voir l'aperçu des modules de shiming pour plus de détails

19
jantimon