Я надеюсь, что кто-то может помочь.
Я использую grunt-babel для преобразования кода моего модуля ES6 в код модуля ES5 AMD. Вот мой код ES6:
умножить.js
export default function (x,y) {
return x * y;
};
квадрат.js
import multiply from 'multiply';
export default function (x) {
return multiply(x,x);
};
app.js
import square from 'square';
var myValue = square(2);
console.log(myValue);
Как видите, все, что я делаю, это создаю модуль «умножить», импортирую его в другой модуль «квадрат», а затем, наконец, использую «квадрат» в моем основном js-файле. Вышеупомянутые 3 файла затем преобразуются в следующее:
умножить.js
define("multiply", ["exports", "module"], function (exports, module) {
module.exports = function (x, y) {
return x * y;
};
});
квадрат.js
define("square", ["exports", "module", "multiply"], function (exports, module, _resourcesJsEs6moduleExampleMultiply) {
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var multiply = _interopRequire(_resourcesJsEs6moduleExampleMultiply);
module.exports = function (x) {
return multiply(x, x);
};
});
app.js
define("app", ["exports", "square"], function (exports, _resourcesJsEs6moduleExampleSquare) {
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var square = _interopRequire(_resourcesJsEs6moduleExampleSquare);
var myValue = square(2);
console.log(myValue);
});
У меня проблема в том, что я ожидал, что файл app.js будет преобразован во что-то вроде этого:
requirejs(['square'],
function (square) {
var myValue = square(2);
console.log(myValue);
}
);
В моем gruntfile.js моя конфигурация довольно проста:
options: {
moduleIds: true,
modules: 'amd',
blacklist: ['strict']
}
Я делаю что-то неправильно?
babel
, все-таки работает.babel
удобно компилировать код таким образом. - person alexpods   schedule 11.03.2015