javascript - 在捆绑包中包含一个 IIFE 模块
问题描述
我在理解如何将 iife 模块与 rollup.js 捆绑在一起时遇到问题。我尝试加载的模块定义为...
;(function (sax) {
sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
sax.SAXParser = SAXParser
sax.SAXStream = SAXStream
sax.createStream = createStream
[...]
})(typeof exports === 'undefined' ? this.sax = {} : exports)
这是我的rollup.config.js
:
import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';
import globals from 'rollup-plugin-node-globals';
import babel from 'rollup-plugin-babel';
export default {
input: 'index.js',
output: {
file: 'build/foo.js',
format: 'umd',
name: 'foo'
},
moduleContext: {
'node_modules/sax/lib/sax.js': 'window'
},
plugins: [
globals(),
nodeResolve({
jsnext: true,
main: true
}),
commonjs({
include: [
'node_modules/**',
],
namedExports: {
'node_modules/sax/lib/sax.js': 'default'
},
ignore: [ 'conditional-runtime-dependency' ]
}),
babel({
exclude: 'node_modules/**'
}),
]
};
我的代码正在导入依赖项......
import sax from "sax";
但是rollup -c
失败了:
[!] Error: 'default' is not exported by node_modules/sax/lib/sax.js
知道如何解决这个问题吗?
解决方案
在 commonjs namedExports 中,您必须使用用于导入的字符串,而不是文件目录:
commonjs({
include: [
'node_modules/**',
],
namedExports: {
sax: ['default']
}
}),
推荐阅读
- python - 为什么函数中的非工作“del”会影响我的导入?
- typescript - 打字稿中的默认泛型类型派生
- python - 为什么类的快速定义与源代码不同
- php - config.php 文件返回错误的问题 - PHP 注意:使用未定义的常量
- splunk - Splunk,如何根据模板输出kv和tables
- python - 我如何运行 python flask 并获取本地主机的链接?
- android - Android:如何更改每个元素的可绘制资源的颜色?
- android - 使用带有 Android 的 Room 使用 UUID 作为主键
- django - 如何将 env_file 放入 Dockerrun.aws.json 文件中?
- python - Percona Xtrabackup 8.0 失败并显示错误“xtrabackup:错误:未知参数:'/var/lib/mysql/data'”