Rollup - неправильное разрешение пути

Я хочу использовать библиотеку ebnf из NPM и создать пакет с помощью 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 или я что-то не так делаю?


person jneuendorf    schedule 06.02.2018    source источник
comment
У меня тоже возникла аналогичная проблема - rollup-plugin-node-resolve добавляет require('../myutilsfile.js') в пакет, из-за чего потребители связанного модуля не могут решить "../myutilsfile.js". Удачи в этом?   -  person Cory Robinson    schedule 30.03.2018


Ответы (1)


Поскольку некоторые из необходимых внешних библиотек по-прежнему будут доступны только в виде модулей Common.js, вы также можете преобразовать их в модули ES:

«Поскольку большинство пакетов в вашей папке node_modules, вероятно, являются устаревшими модулями CommonJS, а не модулями JavaScript, вам может потребоваться использовать rollup-plugin-commonjs»

person alamadrid    schedule 09.08.2018