Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Результат транспиляции клиентского кода содержит функцию require() / 1 сообщений из 1, страница 1 из 1
07.01.2019, 12:08
    #39756467
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат транспиляции клиентского кода содержит функцию require()
Доброго времени суток.

В настройках Babel 7 я перечислил интересующие меня браузеры и их версии. Среди перечисленных платформ я не указывал "node". Тем не менее, результат транспиляции исходного JS-кода, предназначенного для работы в браузерах, содержит вызов функции require() , использование которой свойственно на серверной стороне (на Node.js).

Мой файл package.json :

Код: json
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
{
  "name": "d3_learning",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "directories": {
    "test": "test"
  },
  "scripts": {
    "build": "babel src --out-dir dist --source-maps --minified --no-comments",
    "build:watch": "npm run build -- -w"
  },
  "babel": {
    "presets": [
      [
        "@babel/preset-env",
        {
          "useBuiltIns": "entry",
          "targets": {
            "firefox": "64",
            "opera": "57",
            "chrome": "71",
            "edge": "44",
            "ie": "11"
          }
        }
      ]
    ]
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/core": "^7.2.2",
    "@babel/node": "^7.2.2",
    "@babel/polyfill": "^7.2.5",
    "@babel/preset-env": "^7.2.3",
    "@babel/register": "^7.0.0"
  },
  "dependencies": {
    "d3": "^5.7.0"
  }
}


Файл моего исходного кода:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
import * as d3 from 'd3';

function draw(data) {
    // ...
}

d3.json('../data/some-data.json', draw);



Фрагмент результата транспиляции ( npm run build ):

Код: javascript
1.
"use strict";var d3=_interopRequireWildcard(require("d3"));...



Как видим - для подключения модуля d3 используется функция require() . Как следствие - ошибка в рантайме:

BrowserUncaught ReferenceError: require is not defined

Почему результат транспиляции для подключения модулей использует функцию require() , несмотря на то, что в качестве целевых платформ указаны браузеры, а не Node.js? Как исправить проблему?

С уважением, Андрей
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Результат транспиляции клиентского кода содержит функцию require() / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]