Экспорт только для чтения - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть служебный файл helpers.js:

const func1 = () => {}
const func2 = () => {}

module.exports = {func1, func2}

Я получаю доступ к этим вспомогательным функциям из узла с кодом, подобным следующему:

const helpers = require('./helpers.js')
helpers.func1()

Я также хочу получить доступ этот файл из моего внешнего интерфейса, который использует Babel 7. Если я добавлю эту строку:

import * as helpers from './path/to/helpers.js'

, я получу сообщение об ошибке: exports is read only

Если я попытаюсь сменить помощников. js с более новым синтаксисом экспорта, я получаю сообщение об ошибке, что ключевое слово экспорта не распознано.

Мой .babelr c файл

{
  "presets": [
    "@babel/preset-env"
  ],
  "plugins": [
    "add-module-exports",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/transform-runtime"
  ]
}

Как использовать тех же помощников . js файл в Node и Babel 7?

1 Ответ

0 голосов
/ 23 апреля 2020

Я нашел решение, которое сработало для меня. Измените мои предустановки .babelr c с

{
  "presets": [
    "@babel/preset-env"
  ]
}

на

{
  "presets": [
    ["@babel/preset-env", {"modules":"commonjs"}]
  ]
}

Здесь есть одна строка документации об этом: https://www.npmjs.com/package/babel-plugin-add-module-exports

Справедливое предупреждение: я не понимаю, почему это работает.

...