Webpack 2 ES6导入UMD而没有默认导出

时间:2017-06-15 14:58:29

标签: javascript typescript webpack es6-modules ts-loader

我正在尝试使用Webpack 2和ts-loader导入UMD库。它曾经使用Webpack 1和Rollup(没有TypeScript),但Webpack 2在调用导入函数时附加.default

例如:

import canvg from 'canvg';
canvg();

转换为

var canvg_1 = require("canvg");
canvg_1.default();

我得到Uncaught TypeError: canvg_1.default is not a function

如何解决?

2 个答案:

答案 0 :(得分:2)

问题出在TypeScript配置中,我在我的module: 'es2015'中添加了tsconfig.json并且有效。在某些情况下allowSyntheticDefaultImports: true也可能有所帮助(在我的情况下不是必需的,@ alejandro-garcia-anglada描述的babel-plugin-add-module-exports类似)。

{
    "compilerOptions": {
        "module": "es2015",
        "allowSyntheticDefaultImports": true
    }
}

答案 1 :(得分:1)

使用babel-plugin-add-module-exports,您可以确保一切正常。

https://www.npmjs.com/package/babel-plugin-add-module-exports