Ошибка округления с плавающей точкой. Из Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой :
Сжатие бесконечного числа действительных чисел в конечное число бит требует приблизительного представления. Несмотря на то, что в большинстве программ имеется бесконечно много целых чисел, результат целочисленных вычислений может быть сохранен в 32 битах. В отличие от этого, учитывая любое фиксированное количество бит, большинство вычислений с реальными числами будут давать количества, которые не могут быть точно представлены с использованием этого количества бит. Поэтому результат вычисления с плавающей запятой часто должен быть округлен, чтобы соответствовать его конечному представлению. Эта ошибка округления является характерной особенностью вычисления с плавающей запятой.
blockquote>
Описанная вами ошибка - это именно то, что RequireJS дает вам, когда у вас есть вызов require
в форме CommonJS (require('modX')
) вместо формы AMD (require(['modX'], function (modX) {...})
), и вызов выполняется без обертывания define
. RequireJS предоставляет некоторую поддержку для использования формы CommonJS, но разработчик должен выполнить минимум работы, чтобы убедиться, что он работает. Сценарий, начинающийся с этого, не будет работать:
var modX = require('modX');
// rest of the module
Получено сообщение об ошибке. Вам нужно это вместо этого:
define(function (require) {
var modX = require('modX');
// rest of the module
});
Что происходит с вашей настройкой, так это то, что Babel преобразует модули ES6 в то, что использует require
без оболочки define
. Чтобы заставить Babel выводить надлежащие модули AMD, вам необходимо установить babel-plugin-transform-es2015-modules-amd
и добавить transform-es2015-modules-amd
в свой список плагинов Babel. См. Документацию здесь .