我遇到了一个问题,不知道如何使用rollup.js打包iife模块。 我试图加载的模块定义如下...
;(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
有什么想法可以解决这个问题吗?