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

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


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