汇总中的自定义命名导出不起作用

cka*_*lla 9 rollupjs angular

我是第一次使用Rollup(跟随angular.io的例子),我收到了这个错误:

'node_modules/angular2-jwt/angular2-jwt.js'不输出'AuthHttp'

从app.module.js中的这一行:

13:从'angular2-jwt/angular2-jwt'导入{AuthHttp,AuthConfig};

文档说您可以通过在rollup-config.js文件中指定自定义命名导出来纠正此问题,如下所示:

commonjs({
  namedExports: {
    // left-hand side can be an absolute path, a path
    // relative to the current directory, or the name
    // of a module in node_modules
    'node_modules/my-lib/index.js': [ 'named' ]
  }
})
Run Code Online (Sandbox Code Playgroud)

这是我的rollup-config.js文件的相关部分:

  plugins: [
      nodeResolve({jsnext: true, module: true}),
      commonjs({
        include: 'node_modules/rxjs/**',
         namedExports: {
          'node_modules/angular2-jwt/angular2-jwt.js': [ 'AuthHttp' ]
        }
      }),
Run Code Online (Sandbox Code Playgroud)

但是,这没有任何影响,错误仍然存​​在.有关如何纠正此问题的任何建议?

JGF*_*FMK 4

试试这个,让我知道你进展如何:

rollup-config.js

commonjs({ include: ['node_modules/rxjs/**', 
                     'node_modules/angular2-jwt/angular2-jwt.js'],
 ..
         }) 
Run Code Online (Sandbox Code Playgroud)

npm i -D rollup-plugin-node-resolve也做了吗?

jsnext 显示在 此处的rollup-plugin-node-resolve 文档中。

在问题中也有一个关于在下一个版本中删除它的神秘评论。

然而,汇总wiki 文档对于jsnext来说似乎也很奇怪。他们只是说它被pkg.module取代,这本身并不能真正为我澄清事情。那么也许删除标志或切换到 false

有一个汇总启动项目配置文件。它引用目标数组中的pkg.module 。

还有一个 rollup-starter-lib配置示例。

这是汇总指南

更新:

命名导出似乎是rollup-plugin-commonjs的一部分 npm i -D rollup-plugin-commonjs

通常,您可以将此插件与 rollup-plugin-node-resolve 一起使用,以便可以将 CommonJS 依赖项捆绑在 node_modules 中。

`// explicitly specify unresolvable named exports
 // (see below for more details)
 namedExports: { './module.js': ['foo', 'bar' ] },  // Default: undefined`
Run Code Online (Sandbox Code Playgroud)

您是否也按照此处正确设置了tsconfig-aot.json