Переменные не могут быть экспортированы с Object.defineProperty в Javascript - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь экспортировать переменные из одного документа JS в другой, используя следующий синтаксис:

  var a = 1;
  "use strict";

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

Обратите внимание, что я использую jQuery в качестве библиотеки. Браузер возвращает следующую ошибку, когда я помещаю приведенный выше код в функцию document.ready:

  jquery-3.3.1.min.js:2 Uncaught ReferenceError: exports is not defined
    at HTMLDocument.<anonymous> (index.js:1560)
    at l (jquery-3.3.1.min.js:2)
    at c (jquery-3.3.1.min.js:2)

Нужно ли устанавливать препроцессоры или что-то не так с моим синтаксисом?

1 Ответ

0 голосов
/ 05 января 2019

Таким образом, ответ заключается в том, что вам нужен пакетный модуль для обработки импорта и экспорта модулей в браузере. В nodeJS вы можете использовать общий синтаксис модуляJJ:

// test.js
module.exports = function () {};

// main.js
var test = require('./test');

Но nodeJS предназначен для написания серверной части кода. Если вы хотите запустить свой код в браузере, вам следует поискать веб-пакет. Например, с помощью веб-пакета вы можете писать модули в синтаксисе ES6:

// test.js
export default function () {}

// main.js
import test from './test';

Пожалуйста, узнайте о веб-пакете: https://webpack.js.org/concepts/ Это не так сложно настроить любой проект.

Для веб-пакета вам необходимо создать точку входа для вашего приложения и определить небольшой конфиг. Остальная часть будет обрабатываться этой библиотекой, также для веб-пакета требуются установленные NodeJ на вашем компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...