我正在尝试将 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",