我想使用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中的问题,还是我做错了什么?

最佳答案

由于所需的某些外部库仍仅作为Common.js模块提供,因此您也可以将它们转换为ES-Modules:


  • https://github.com/rollup/rollup-plugin-commonjs

    “将CommonJS模块转换为ES6,以便可以将它们包含在汇总包中”
  • 关于node.js - 汇总-错误的路径分辨率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48652710/

    10-12 03:23