ãgulpãgulp-webpack ã§è¤æ° JS ã®æ¸ãåºã Tips
webpack ã¯ã¨ã³ããªã¼ãã¤ã³ããæå®ãããã¨ã§è¤æ°ã® JS ãã¡ã¤ã«ã®æ¸ãåºããå¯è½ã
gulp-webpack
ãå
¬å¼ã§ä»¥ä¸ã®æ¹æ³ãç´¹ä»ãã¦ããã
var gulp = require('gulp'); var webpack = require('gulp-webpack'); var named = require('vinyl-named'); gulp.task('default', function() { return gulp.src(['src/app.js', 'src/test.js']) .pipe(named()) .pipe(webpack()) .pipe(gulp.dest('dist/')); });
ä¸è¨ã®å ´åãdist/app.js
ãdist/test.js
ãåºæ¥ä¸ããã
ä¸ã¤ä¸ã¤ãã¡ã¤ã«åæ¸ãã®ã¯é¢åãªã®ã§ãglob ã§çç¥ããã¨ãããªãã
var gulp = require('gulp'); var webpack = require('gulp-webpack'); var named = require('vinyl-named'); gulp.task('default', function() { return gulp.src('src/**/*.js') .pipe(named()) .pipe(webpack()) .pipe(gulp.dest('dist/')); });
ãããããããã¡ã¤ã«åããã¶ãã¨æ³å®å¤ã®ãã¨ãèµ·ããã
â¼ãã¡ã¤ã«åããã¶ãæ§æä¾
src ââhoge â  âââ app.js ââfuga âââ app.js
ãã®å ´åãåºæ¥ä¸ããã®ã¯ dist/app.js
ã®ã¿ã§ãsrc/hoge/app.js
㨠src/fuga/app.js
ããã¼ã¸ããã¦åºåãããã
å é¨çã«ã¨ã³ããªã¼ãã¤ã³ãã¯ãã®æ§ã«è¨å®ããã¦ããã
{ entry: { app: [ '/path/to/src/hoge/app.js', '/path/to/src/fuga/app.js' ] } }
æ¬å½ã«åå¥ã«æ¸ãåºããããªãä¸å·¥å¤«ãå¿ è¦ããããªæãã
var gulp = require('gulp'); var webpack = require('gulp-webpack'); var named = require('vinyl-named'); gulp.task('default', function() { return gulp.src('src/**/*.js') .pipe(named(function(file) { return file.relative.replace(/\.[^\.]+$/, ''); })) .pipe(webpack()) .pipe(gulp.dest('dist/')); });
vinyl-named
ã¯ããã©ã«ãã ã¨æ¡å¼µåãªãã®ãã¡ã¤ã«åãè¿ãæ§ã«ãªã£ã¦ããã®ã§ããã£ã¬ã¯ããªãå«ãååã§è¿ãã¦ãããã¨ãã¼ã¸ã¯èµ·ããªãã
â» file.relative
ã®å¤ã¯ gulp.src
ã®å¤ã«å·¦å³ãããç¹ã«æ³¨æã
å é¨çã«ã¨ã³ããªã¼ãã¤ã³ãã¯ãã®æ§ã«è¨å®ããã¦ããã
{ entry: { 'hoge/app': [ '/path/to/src/hoge/app.js' ], 'fuga/app': [ '/path/to/src/fuga/app.js' ] } }
ããã«ãããdist 以ä¸ã«ã¯ hoge/app.js
㨠fuga/app.js
ãåºæ¥ãã