Импорт CommonJS не корректно разрушается в ES6 - PullRequest
0 голосов
/ 29 ноября 2018

В корне моей зависимости от модуля у меня есть файл с именем form.js:

module.exports = require("./dist/bundle.js").form;

В моем проекте у меня есть:

import { someComponent } from 'my-dependency/form';

Все же someComponent будет undefined.

Если я сделаю это:

import form from 'my-dependency/form';
console.log(form.someComponent);

Он выведет что-то похожее на консоль:

ƒ Rr(e){var t=e.component,n=void 0===t?"input":t,r=e.rend[....]

Тем не менее, если я сделаю это, это будет работать:

import form from 'my-dependency/form';
const { someComponent } = form;

Что я здесь не так делаю и как мне добиться того, чего я хочу?

Внутри моего src/form.js файла у меня есть:

import someComponent from "./someComponent";
export default {
  someComponent
};

Внутри src/index.js, у меня есть:

import * as form from "./form";
export default {
  form
};

Вероятная основная причина, но не знаете, как исправить? ...

Похожепроблема, вызванная экспортом с CommonJS и импортом с использованием синтаксиса ES6.

Вот кто-то с похожей проблемой, но с 4 лет назад: https://github.com/google/traceur-compiler/issues/1483

и с 2 лет назад: https://github.com/Microsoft/TypeScript/issues/11179

Я пытался явно установить код, подобный так, но это, похоже, не достигло того, что я хочу (создает модуль со свойством по умолчанию):

Object.defineProperty(module.exports, "__esModule", {
  value: true
});

Это похоже на чтениеонлайн люди будутделать import * as whatever from '..' но не должны ли разрушать работу тоже? ...

1 Ответ

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

Два способа: либо

export const someComponent

Тогда:

import { someComponent } from 'my-dependency/form'

Или:

export default {
  someComponent
}

Затем:

import someComponent from 'my-dependency/form'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...