javascript - Webpack 2 ES6 导入没有默认导出的 UMD
我正在尝试使用 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 不是一个函数。
如何修复它?
答案#1
问题出在 TypeScript 配置中,我在 tsconfig.json 中添加了 module: 'es2015',它就起作用了。此外,allowSyntheticDefaultImports: true 在某些情况下可能有帮助(在我的情况下不是必需的,类似于 @alejandro-garcia-anglada 描述的 babel-plugin-add-module-exports)。
{
"compilerOptions": {
"module": "es2015",
"allowSyntheticDefaultImports": true
}
}
答案#2
使用 babel-plugin-add-module-exports,你可以确保一切按预期工作。
https://www.npmjs.com/package/babel-plugin-add-module-exports
