Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在包中包含IIFE模块_Javascript_Commonjs_Iife_Rollupjs - Fatal编程技术网

Javascript 在包中包含IIFE模块

Javascript 在包中包含IIFE模块,javascript,commonjs,iife,rollupjs,Javascript,Commonjs,Iife,Rollupjs,我在理解如何将iife模块与rollup.js绑定时遇到问题。 我试图加载的模块定义如下 ;(function (sax) { sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } sax.SAXParser = SAXParser sax.SAXStream = SAXStream sax.createStream = createStream [...] })

我在理解如何将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']
  }
}),

你有没有想过?