Проблемы при импорте общего скрипта в Babel & Node - PullRequest
0 голосов
/ 28 июня 2018

У меня есть модуль javascript, который необходимо импортировать в две разные кодовые базы:

  • nodejs (8.11.3 и выше НЕ переносятся с использованием babel)
  • vuejs 2.5.16 (в комплекте через веб-пакет и переносится babel)

У меня проблемы с экспортом файла, так как обе базы кода могут его импортировать.

Если я попытаюсь экспортировать его, используя commonJS, примерно так:

module.exports = myFunc

Бабель жалуется с Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

Если я попытаюсь экспортировать его, используя commonJS, вот так:

exports = myFunc

Бабель жалуется с Uncaught ReferenceError: exports is not defined

Если я попытаюсь экспортировать его, используя синтаксис экспорта es2015, примерно так:

export default myFunc

Nodejs будет жаловаться на:

export default reduce;
^^^^^^

SyntaxError: Unexpected token export

К сожалению, передача полного узла nodejs не возможна. Я надеюсь, что это можно исправить, настроив веб-пакет или добавив расширение или около того.

Воспроизвести / весь код:

  • репо здесь https://github.com/askmike/gekko.git (ветка до v0.6)
  • модуль, который я пытаюсь разделить между vue и nodejs, здесь .
  • чтобы запустить nodejs env: npm install && cd web && node server.
  • для запуска vue env: cd web/vue && npm install && npm run serve.

1 Ответ

0 голосов
/ 29 июня 2018

Как вы упомянули Узел 8.11.3 не переносится с помощью babel, поэтому я предполагаю, что мы не можем использовать babel-node для включения пакетов с использованием import export заявления.

Вы можете запросить пакет commonJS , используя

const reduce = require('reduce');

...