我想使用NPM中的库ebnf
并使用rollup
创建一个包。由于ebnf
已安装到node_modules
,我还使用汇总插件rollup-plugin-node-resolve
。
问题在于ebnf
包含代码require('..')
,在我的情况下,在我的情况下,代码被解析为dist
。因此,似乎..
相对于输出文件而不是相对于源文件进行解释。
这是我的rollup.config.js
(取自我的测试报告jneuendorf/rollup-broken-resolve):
import resolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
export default {
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'cjs'
},
// name: 'MyModule',
plugins: [
resolve(),
commonjs(),
]
}
这是rollup-plugin-node-resolve
中的问题还是我做错了什么?
答案 0 :(得分:1)
由于所需的某些外部库仍仅作为Common.js模块提供,因此您也可以将它们转换为ES模块:
“由于node_modules文件夹中的大多数软件包可能都是旧版CommonJS而不是JavaScript模块,因此您可能需要使用rollup-plugin-commonjs”
https://github.com/rollup/rollup-plugin-commonjs
“将CommonJS模块转换为ES6,以便可以将它们包含在汇总包中”