如何在ES6中导入"旧"ES5代码

wns*_*mth 20 javascript ecmascript-6 webpack es6-module-loader

我有一个ES6应用程序(带Babel 6.5Webpack),它成功导入我的模块,如下所示:

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

我想安装https://github.com/robflaherty/riveted/blob/master/riveted.js(对于谷歌分析插件),但你可以看到,该代码没有类似的东西module.exports = ...,它只是定义了一个全局变量riveted,但它有一个明显有效的package.json指向riveted.js.

所以做类似的事情

import riveted from 'riveted'
riveted.init();
Run Code Online (Sandbox Code Playgroud)

抛出错误:

_riveted2.default.init不是一个函数

import riveted from 'riveted'
riveted.init();
Run Code Online (Sandbox Code Playgroud)
import 'riveted'
riveted.init();
Run Code Online (Sandbox Code Playgroud)

抛出错误:

铆接没有定义

import * as riveted from 'riveted'
riveted.init();
Run Code Online (Sandbox Code Playgroud)

抛出错误:

riveted.init不是一个功能

如何访问riveted的init()函数?

jan*_*mon 19

您可以使用webpack exports loader:

var riveted = require("exports?riveted!riveted")
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅shiming模块概述