javascript — адаптировать зависимости к ES или CJS с помощью Rollup

Приспособьте зависимости к ES или CJS с Rollup

У меня есть пакет NPM (частный), который работает как в браузере, так и в среде Node.

Это делается путем создания отдельных пакетов через Rollup для ES и CJS, поэтому результат выглядит следующим образом:

 dist/ejs/index.js // Import this for your browswer environments dist/cjs/index.js // Use this for Node environments 

Довольно стандартный. Теперь я добавляю к этому зависимость, которая следует той же схеме связывания.

Я могу импортировать библиотеку так:

 import { externalLibrary } from "@external/ejs/externalLibrary"; 

В браузерной среде все хорошо. Но теперь это не работает в среде Node, поскольку я импортирую не CJS.

Я мог бы изменить способ импортирования библиотеки, чтобы require и нацелиться на пакет cjs :

 const { externalLibrary } = require("@external/cjs/externalLibrary"); 

И хотя это работает в обеих средах, я не думаю, что это оптимально.

Есть ли лучший способ сделать это? Некоторая конфигурация, которую я мог бы указать при экспорте пакета CJS?

 module.exports = { input: 'src/main.js', output: { file: 'bundle.js', format: 'cjs' // Behaviour here for @external/cjs/externalLibrary ? } }; 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector