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

时间:2017-07-31 02:07:13

标签: angular rollupjs

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

'authHttp'不会被'node_modules / angular2-jwt / angular2-jwt.js'

导出

来自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' ]
  }
})

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

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

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

1 个答案:

答案 0 :(得分:3)

试试这个,让我知道你是怎么做的:

汇总-config.js

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

你还做过npm i -D rollup-plugin-node-resolve吗?

jsnext显示在rollup-plugin-node-resolve文档中 here

关于在issues

中的下一个版本中将其删除,也有一个神秘的评论

rollup wiki docs对于 jsnext 而言似乎很奇怪。 他们只是说它被pkg.module取代,而我自己并没有真正澄清事情。那么可能删除标记或切换为错误

有一个汇总starter-project配置文件。它引用目标数组中的 pkg.module

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

这是汇总guide

<强>更新

命名导出似乎是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`

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