javascript - webpack libraryTarget 'umd' 应该与 ES6 模块一起使用吗?
问题描述
我正在尝试使用 webpack 分发基于节点的库。我已经看到周围的大多数 js 库都可以用于:
commonJs 语法
const lib = require('library')
或 ES6 语法
import * as lib from "library"
我已按照本教程进行操作,最终的 webpack.config.js 如下所示:
var path = require('path');
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'sepa.js',
library: 'sepajs',
libraryExport: 'default',
libraryTarget: 'umd',
umdNamedDefine: true,
globalObject: "typeof self !== 'undefined' ? self : this"
}
};
尽管在浏览器上这个 import 语句会导致一个空模块:
import * as SepaJs from "./sepa.js"
webpack 是否假设将基于 commonJs 的库导出到 ES6 模块库?我应该用 babel 转编译它吗?我可以拥有一个包含两个模块解决方案的捆绑文件吗?
解决方案
推荐阅读
- c++ - 将 struct sockaddr_in6* 转换为 boost::asio::ip::address_v6
- python-3.x - Python 格式化正则表达式模式字符串
- javascript - 在自定义节点中添加动态表 - Node-Red
- mysql - 优化查询(Indexing, EXPLAIN) Mysql
- groovy - Groovy 包含新的 Groovy 脚本
- typescript - Vue2 - 使用外部第三方组件作为子组件
- excel - 将某些行中的单元格有条件地合并到 Excel 中的一个单元格中
- android - 在 BaseViewModel 中注入依赖项
- python - 从另一列的统计数据中绘制大小类
- c++ - VS Code C++ Intellisense 在#include 行之后很慢