私の目標は、babel を介して機能するいくつかの requirejs コードを偽造することです。次を追加するとif (typeof define !== "function") { var define = require("amdefine")(module); }
、nodejsで実行しているときにすべてのファイルの先頭に、うまくいくように見えることがわかりました。
これは私が書いたコードで、うまくいくか、ほとんどうまくいくと思っていました。
function injectDefine(babel) {
var header = 'if (typeof define !== "function") { var define = require("amdefine")(module); }';
return new babel.Plugin('amdefine', {
visitor: {
Program: {
enter: function(path, file) {
path.unshiftContainer(
'body',
babel.types.expressionStatement(
babel.types.stringLiteral(header)
)
);
},
},
},
});
}
require('babel-core/register')({
stage: 0,
plugins: [{transformer: injectDefine}],
});
require('../components/button');
components/button
ファイルは、いくつかのファイルがロードできることをテストしようとしているだけです。
その他の注意事項: 私は babel 5 を使用しており、現在アップグレードできません。.babelrc
私も今はなかなか使えません。