Нет.Это не лучший способ сделать это.Модули не должны требовать от своих пользователей.
Вместо этого используйте внедрение зависимостей - пусть ваш пользователь передает вам требуемые объекты:
package / index.js
let File = null;
function init (fileModule) {
File = fileModule;
}
export init;
// ...
Таким образом, выможет передать объект File
из вашего основного приложения:
App / index.js
import { init } from 'package';
import File from './folder/file';
init(File);
Как вы разрабатываете API для передачи вашего "промежуточного программного обеспечения",вам решать.Выше это просто предложение.Вы можете передать его в качестве аргумента в конструктор, например:
const package = new Package(File);
Это на самом деле, как работает фреймворк, такой как Express.Это позволяет расширять Express, не зная структуры вашего кода:
app.use(someMiddleware); // Express never "requires" your middleware
// instead it allows you to pass middleware to itself