Я новичок в настройке вещей с помощью Rollup, я пытаюсь настроить приложение CLI для узла, которое будет объединено в один файл cli.bundle. js, который будет выполняться с простым узлом cli.bundle. js без необходимости npm устанавливать что-либо ранее.
Кстати, нам уже удалось сделать это с помощью zeit / pkg, но мы бы хотели отметить, что все исполняемые файлы nodejs связаны внутри, поэтому мы пытаемся работать с накопительным пакетом вместо pkg.
Проблема, с которой мы сталкиваемся, заключается в том, что при прохождении различных узлов node_modules, накопительный пакет. js cra sh с ошибкой:
[!] Error: Identifier 'Reader' has already been declared
../../common/js-common/node_modules/fstream/lib/file-reader.js (7:4)
5: var fs = require("graceful-fs")
6: , fstream = require("../fstream.js")
7: , Reader = fstream.Reader
^
8: , inherits = require("inherits")
9: , mkdir = require("mkdirp")
Error: Identifier 'Reader' has already been declared
at error (/home/.../src/external-data/external-data-etl/node_modules/rollup/dist/shared/node-entry.js:5400:30)
at Module.error (/home/.../src/external-data/external-data-etl/node_modules/rollup/dist/shared/node-entry.js:9820:16)
at tryParse (/home/.../src/external-data/external-data-etl/node_modules/rollup/dist/shared/node-entry.js:9713:23)
at Module.setSource (/home/.../src/external-data/external-data-etl/node_modules/rollup/dist/shared/node-entry.js:10076:33)
at Promise.resolve.catch.then.then.then (/home/.../src/external-data/external-data-etl/node_modules/rollup/dist/shared/node-entry.js:12362:20)
При поиске этой ошибки с помощью накопительного пакета, кажется, что люди имели ее больше во время выполнения, чем во время связки, поэтому я понятия не имею, что я могу сделать. Этот дублированный идентификатор находится в стороннем коде, который я не контролирую: (
Вот мой rollup.config. js
Редактировать: я попытался с новым @rollup/plugins
, чтобы увидеть если в них было исправление, но у меня все та же проблема.
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import json from '@rollup/plugin-json';
export default {
input: 'dist/index.js',
output: {
format: 'cjs',
file: './cli.bundle.js'
},
plugins: [
commonjs(),
resolve(),
json() // asked and added when parsing 'got' package imported by 'download' package
]
};
И наш процесс сборки:
- перенос из машинописного текста (sr c) в js (dist) с приложением ts c
- bundle (dist) в один исполняемый файл
Мы бы не хотели включать плагин babel или машинописный текст для переноса, чтобы оставаться независимым и, конечно, достаточно (dist) приложения (как этого было достаточно для zeit / pkg).
Есть ли что-то, что мы делаем неправильно?