【问题标题】:Rollup - incorrect path resolution汇总 - 不正确的路径分辨率
【发布时间】:2018-07-17 02:07:09
【问题描述】:

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

【问题讨论】:

  • 我也遇到了类似的问题 - rollup-plugin-node-resolve 在捆绑包中添加了一个require('../myutilsfile.js'),这导致捆绑模块的消费者抛出“无法解析”。 ./myutilsfile.js'”。这有什么好运气吗?

标签: node.js path relative-path rollupjs


【解决方案1】:

由于需要的一些外部库仍然只能作为 Common.js 模块使用,您也可以将它们转换为 ES-Modules:

“由于你的 node_modules 文件夹中的大多数包可能是旧的 CommonJS 而不是 JavaScript 模块,你可能需要使用 rollup-plugin-commonjs”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2015-03-31
    相关资源
    最近更新 更多