Как изменить module.exports для импорта и экспорта? - PullRequest
0 голосов
/ 23 ноября 2018
module.exports = function (idx) {
   this.camera = idx;
};

module.exports.CONFIG = function () {
  return Promise.resolve([]);
 };
module.exports.CONFIG.FLOOR = function () {
  return Promise.resolve([]);
}

У меня есть файл, который содержит код, как указано выше.Мне нужен этот файл и console.log.Он показывает только

function (idx) {
   this.camera = idx;
}

Почему другие атрибуты скрыты?

И если я удаляю первый абзац module.exports и console.log, он показывает анонимную функцию (или функцию по умолчанию?)в CONFIG.

{ CONFIG:
  { [Function]
    FLOOR: [FUNCTION]
   }
}

Мне интересно, как изменить его на тип импорта / экспорта вместо module.exports / require?

Спасибо!

1 Ответ

0 голосов
/ 23 ноября 2018

Похоже, у вас есть именованный экспорт и экспорт по умолчанию .При экспорте это будет выглядеть примерно так:

// Default export:
export default function (idx) {
  this.camera = idx;
};
function CONFIG() {
  return Promise.resolve([]);
}
CONFIG.FLOOR = function () {
  return Promise.resolve([]);
}
// Named export:
export CONFIG;

Затем, при импорте их, вам нужно будет импортировать как по умолчанию, так и имя:

import idxFn, { CONFIG } from '../foo';
      ^^^^^ default import
               ^^^^^^ named import

После этого вы сможетечтобы получить доступ к FLOOR путем ссылки CONFIG.FLOOR.

Но обратите внимание, что наличие функции, которая является свойством другой функции , действительно странно .Вместо этого вы можете рассмотреть экспорт FLOOR как другой именованный экспорт, например CONFIG:

// Default export:
export default function (idx) {
  this.camera = idx;
};
// Named exports:
export function CONFIG() {
  return Promise.resolve([]);
}
export function FLOOR () {
  return Promise.resolve([]);
}
...