1

我正在尝试将 rxdb 与 rollup 一起使用,但 rxdb 导入了 clone 模块,并且显然与 rollup 和 commonjs 插件不兼容。

我在运行时看到此错误yarn dev

[!] Error: 'default' is not exported by node_modules/clone/clone.js, imported by node_modules/rxdb/dist/es/util.js
https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module
node_modules/rxdb/dist/es/util.js (6:9)
4:  */
5: import randomToken from 'random-token';
6: import { default as deepClone } from 'clone';
            ^
7: /**
8:  * Returns an error that indicates that a plugin is missing
Error: 'default' is not exported by node_modules/clone/clone.js, imported by node_modules/rxdb/dist/es/util.js
    at error (/home/chrisdawson/xxx/svelte/node_modules/rollup/dist/shared/rollup.js:5305:30)

我认为 rollup/commonjs 插件中的 namedExports 可以解决这个问题,但我不确定如何使用它。这是我的 rollup.config.js 文件中的一个片段:

commonjs({
  namedExports: { 'node_modules/clone/clone.js': [ clone ]},
}),

clone.js 文件的结尾如下所示:

chrisdawson@pop-os:~/svelte$ cat node_modules/clone/clone.js 
...
return clone;
})();

if (typeof module === 'object' && module.exports) {
  module.exports = clone;
}

允许导入此“默认”导出的正确方法是什么?

我的汇总包依赖项是:

"rollup": "^2.3.4",
    "rollup-plugin-commonjs": "^10.1.0",
    "rollup-plugin-css-only": "^3.1.0",
    "rollup-plugin-livereload": "^2.0.0",
    "rollup-plugin-node-polyfills": "^0.2.1",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-postcss": "^4.0.0",
    "rollup-plugin-svelte": "^7.1.0",
    "rollup-plugin-terser": "^7.0.0",

4

0 回答 0