希望有人能够帮忙。
我正在使用grunt-babel将我的ES6模块代码转换为ES5 AMD模块代码。这是我的ES6代码:
multiply.js
export default function (x,y) {
return x * y;
};
square.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);
正如您所看到的,我所做的只是创建一个名为“multiply”的模块,将其导入到另一个名为“square”的模块中,最后在我的主js文件中使用“square”。上述3个文件随后会转换为以下内容:
multiply.js
define("multiply", ["exports", "module"], function (exports, module) {
module.exports = function (x, y) {
return x * y;
};
});
square.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
来说编译代码非常方便。 - alexpods