browserify + 6to5を使用して、JSでモジュールを使用できるようにするgulpタスクを作成しようとしています(CommonJSは問題ありません)。ソースマッピングも機能させたいです。
1. ES6 構文を使用してモジュールを作成します。2. 6to5 は、これらのモジュールを CommonJS (またはその他の) 構文にトランスパイルします。3. Browserify がモジュールをバンドルします。4. ソース マップは元の ES6 ファイルを参照します。
そのようなタスクを書く方法は?
編集:これが私がこれまでに持っているものです:
ぐるぐるタスク
gulp.task('browserify', function() {
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var to5ify = require('6to5ify');
browserify({
debug: true
})
.transform(to5ify)
.require('./app/webroot/js/modules/main.js', {
entry: true
})
.bundle()
.on('error', function(err) {
console.log('Error: ' + err.message);
})
.pipe(source('bundle.js'))
.pipe(gulp.dest(destJs));
});
モジュール/A.js
function foo() {
console.log('Hello World');
let x = 10;
console.log('x is', x);
}
export {
foo
};
モジュール/B.js
import {
foo
}
from './A';
function bar() {
foo();
}
export {
bar
};
モジュール/main.js
import {
bar
}
from './B';
bar();
コードは機能しているように見えますが、縮小されておらず、ソース マップがインラインになっています (実際には運用環境では機能していません)。